Комментарии 5
Будет ли момент, когда она будет перекрывать верхнюю часть BottomSheet?
Получится вот такое поведение
Гифка с поведением

Верхняя граница layout с кнопкой совпадает с нижней границей bottomsheet. Получается, что содержимое bottomsheet визуально заезжает под кнопку, но на самом деле оно исчезает в моменте соприкосновения с кнопкой.
Это легче понять, представив, что в данном кейсе верхняя часть кнопки - это низ экрана, если бы кнопки не было.
Можно анимировать плавное исчезание кнопки при отрицательном slideOffset в методе onSlide, смещая layout с кнопкой и coordinator вниз по мере уменьшения отрицательного slideOffset.
if (slideOffset > 0) {
// Тут весь код, который уже был
} else {
// Коэффицент можно подобрать любой по желанию
// А так же нужно предусмотреть случай, когда тянули вниз,
//но начали возвращать наверх, но slideOffset ещё отрицательный. Для этого можно сравнивать прошлый и текущий slideOffset
//и делать соответствующее решение
buttons.y += slideOffset.absoluteValue * 3
coordinator?.let {
it.y += slideOffset.absoluteValue * 3
}
}
И тогда получится вот такое поведение при смахивании вниз.
Кнопка уезжает при вытягивании вниз

Надеюсь, что я полностью ответил на вопрос)
И зачем в button.xml корневой LinearLayout? В нем же одна кнопка, почему нельзя просто кнопку добавлять? Ну в крайнем случае использовать?
Зачем ее динамически создавать?
Я как раз таки искал способ добавить кнопку на экран но так, чтобы она не двигалась вместе с остальным содержимым bottomsheet при вытягивании.
Если подскажете куда добавить её в разметку фрагмента, чтобы она оставалась неподвижной без изменений её y(игрик) при onSlide(), я буду рад)
Я пытался, но не нашёл способа.
И зачем в button.xml корневой LinearLayout?
Просто для примера, что там может быть не одна View, а ViewGroup.
Указывал этот аспект в статье:
Вместо кнопки мы можем начинить наш layout любыми другими view
Этот туториал могут ведь увидеть и новички. На мой взгляд полезно дать понять, что можно делать шире, чем в примере.
В нем же одна кнопка, почему нельзя просто кнопку добавлять?
Можно :)
BottomSheetDialogFragment с анимацией при смене состояния и sticky button