Size: a a a

Android Developers

2020 January 22

DS

Daniel Sergeev in Android Developers
У вьюхи есть методы getLayoutParams и setLayoutParams
источник

DS

Daniel Sergeev in Android Developers
Когда ты меняешь параметры, полученные с помощью getLayoutParams(),
источник

DS

Daniel Sergeev in Android Developers
Лучше проставить их обратно методом setLayoutParams()
источник

DS

Daniel Sergeev in Android Developers
А в котлине джавовый метод setLayoutParams() вызывается как this.layoutParams =
источник

DS

Daniel Sergeev in Android Developers
Это все нужно чтобы гарантированно вызвался view.requestLayout() и вьюха перемежрилась и заново отрисовалась
источник

AM

Anton Mironov in Android Developers
если this убрать эффект будет не тот?
источник

DS

Daniel Sergeev in Android Developers
(snackbar.view as Snackbar.SnackbarLayout).apply {

 layoutParams = (layoutParams as MarginLayoutParams).apply {
        width = MATCH_PARENT
        setMargins(0, 0, 0, 0)
 }
 setPadding(0, 0, 0, 0)

}
источник

DS

Daniel Sergeev in Android Developers
Я бы вот так написал)
источник

DS

Daniel Sergeev in Android Developers
this можно убрать в этом примере
источник

DS

Daniel Sergeev in Android Developers
Потому что мы работаем в контексте объекта приемника (во внешней лямбде)
источник

AM

Anton Mironov in Android Developers
благодарю!)
источник

DS

Daniel Sergeev in Android Developers
А это как раз snackbar.view
источник

DS

Daniel Sergeev in Android Developers
val snackbarView = snackbar.view as Snackbar.SnackbarLayout

(snackbarView.layoutParams as MarginLayoutParams).apply {
        width = MATCH_PARENT
        setMargins(0, 0, 0, 0)
 }
snackbarView.setPadding(0, 0, 0, 0)
snackbarView.requestLayout
источник

DS

Daniel Sergeev in Android Developers
Вот эквивалентный код
источник

DS

Daniel Sergeev in Android Developers
snackbarView.requestLayout на самом деле вызовется в setPadding и необязателен
(до тех пор, пока ты не удалишь setPadding 🙂
источник

AM

Anton Mironov in Android Developers
шикарно!))
источник

AM

Anton Mironov in Android Developers
источник

DS

Daniel Sergeev in Android Developers
Посмотри лайоут инспектором
источник

DS

Daniel Sergeev in Android Developers
У какой вьюхи эти боковые паддинги
источник

DS

Daniel Sergeev in Android Developers
Достань эту вьюху из иерархии и убери паддинги/маргины/поставь MATCH_PARENT
источник