список с титулом, который мы хотим отобразить, титул должен быть статичным при прокрутке. Можно использовать stickyHeader у LazyColumn, а можно положить LazyColumn в Column после заголовка. Вообще такое чувство что логичней пользоваться вторым, но особой разницы не вижу. Кроме “адекватности” подхода, есть еще какие-нибудь аргументы в пользу первого или второго способов?
Ну если он у тебя один и всегда вверху, то конечно второй вариант и можно даже в column, а не box. Кроме того стикихедер экспериментальный. А вот если бы у тебя было много групп данных и эти тултипы должны были прокручиваться вместе со списком и задерживаться сверху, то StickyHeader.
Эм, зачем LazyColumn внутрь Column совать)
Если тебе нужен постоянный заголовок, а не скролящийся с контентом (sticky header), то вполне логично разместить Column Header LazyColumn
Почему логично юзать нестедскроллинг? Предпочту его не юзать, если мне оно не надо, тут можно и без него обойтись
Откуда ты взял нестедскроллинг? Сам придумал — сам обошёл:)
А, это когда задаешь Column модификатор verticalScroll(…) Хм… попробую
Зачем? Обычный Column у тебя и не должен скроллиться вовсе. Скроллится только LazyColumn
я и не говорю что она должна скроллиться, я говорю что ошибка про нестедскроллинг будет только когда у Column задан такой модификатор, при его отсутствии не должно быть ошибок
Видимо я тебя не так понял. В таком случае да. И растягиваешь lazy на всю оставшуюся ширину.
Вот кстати интересно- нужно ли задавать LazyColumn обязательно модификатор fillMaxSize() чтобы мол ограничить ее высоту для производительности? Если говорить про ширину, то я item-ам передаю в модификатор модификатор с fillMaxWidth(), не задавая его внутри самого @Composable item-а. А вот про высоту хз
Не уверен, как оно работает внутри, но отсутствие высоты вполне себе может вылиться в ошибку, т.к. Column не будет знать насколько большим отрисовывать Lazy. С шириной таких проблем как-раз кажется быть не должно. Но лучше всего просто взять да проверить.
@andkulikov можно Вас попросить прокомментировать?
второй вариант более логичен, да. как и остальные заметили. стики хеадер скорей полезен когда таких хедеров несколько внутри списка, чтобы они сменялись когда доскролили до следующего хедера
Благодарен за ответ)
нет, явно ставить fillMaxSize() не обязательно. он итак не может занять размер больше чем доступно ему от его парента. fillMaxSize() нужен только чтобы описать должен ли LazyColumn занять весь размер даже если элементов меньше чем нужно чтобы заполнить все доступное место. так как дефолтное поведение это типа wrap_content
Спасибо большое еще раз!)
А почему нельзя просто item использовать для титула перед items?
он не будет статичным
А если у тебя заголовок который должен прилипнуть находится где то в середине item ов, как ты без stickyHeader это реализуешь?
Это явно уже совсем другой кейс.
не заголовок вроде уже получается)
Обсуждают сегодня