Решал тут давеча UI-ную задачку, суть её была в следующем: есть скроллящийся контент, и когда скроллишь его вниз – он должен скроллиться под другую вьюху, а когда скроллишь его вверх – вьюха должна скроллиться за ним, когда он выедет из-под неё. Вы это, скорее всего, видели в модных тулбарах со всякими AppBarLayout, CollapsingToolbarLayout и иже с ними.
Такое поведение, как я понял, называется sticky. Если вьюха снизу – sticky footer, если сверху – sticky header. Посмотреть можно, вот тут и тут.
И если с тулбаром всё понятно, то вот со вьюхами внизу уже интереснее.
В целом, всё сводится к засовыванию всего в CoordinatorLayout и / или прослушиванию скроллвью и выставлению видимости / отступов в зависимости от этого. Решать можно или переопределением Behavior у CoordinatorLayout, или втупую делать всё руками, вешая OnScrollChangedListener на NestedScrollView.
Через бихевьор – красивее, но у меня чот не завелось T_T. В итоге всё получилось, но через CoordinatorLayout + прослушивание скролла.
Рад, что получилось сделать UI-ную задачу, как я говорил – они у меня идут туго. Местами консультировался у чатГПТ. Правда, по большей части он нёс ахинею и постоянно забывал, что я ему говорил одну фразу назад, ну да ладно. Зато иногда правил мне вёрстку быстрее, чем я бы поправил её сам.
Post #183
1.59K
- 👍 5
- 🔥 3
- 👏 2