Прилипание к вершине экрана (Фиксирование view на вершину NestedScrollView) | Kotlin
Как сделать так, чтобы при пролистывании вниз, container_2 прилипал к вершине экрана, как показано на картинке 2? А на картинке 3 то, как получается сейчас.
Ответы (1 шт):
Автор решения: Sire IMPACTUS
→ Ссылка
Пытался сделать с текущей разметкой, но не получилось, ибо nestedScrollView не блокировался, даже когда я написал кастомный виджет.
Способ 1
Переделал верстку:
— CoordinatorLayout
— — ConstraintLayout (container_1)
— — ConstraintLayout (container_2)
И добавил код в onActivityCreated:
bottomSheet = BottomSheetBehavior.from<ConstraintLayout>(container)
bottomSheet.state = BottomSheetBehavior.STATE_COLLAPSED
bottomSheet.peekHeight = 865 //(y из свойств) + ~(100-200).
Видимо, это значение отталкивается от низа экрана, а не верха
bottomSheet.isHideable = false
Способ 2 (У меня не получилось, но, теоретически, должно работать)
Используйте setOnScrollChangeListener на NestedScrollView. Там можно получить значение scrollY. Его надо сравнить с высшей точкой нужного элемента (view.getTop | view.top), а после этого заблокировать скролл.


