Братцы и сестры, есть такой вопрос. Допустим у нас есть

список с титулом, который мы хотим отобразить, титул должен быть статичным при прокрутке. Можно использовать stickyHeader у LazyColumn, а можно положить LazyColumn в Column после заголовка. Вообще такое чувство что логичней пользоваться вторым, но особой разницы не вижу. Кроме “адекватности” подхода, есть еще какие-нибудь аргументы в пользу первого или второго способов?

22 ответов

23 просмотра

Ну если он у тебя один и всегда вверху, то конечно второй вариант и можно даже в column, а не box. Кроме того стикихедер экспериментальный. А вот если бы у тебя было много групп данных и эти тултипы должны были прокручиваться вместе со списком и задерживаться сверху, то StickyHeader.

Silent829- Автор вопроса
Silent829
Эм, зачем LazyColumn внутрь Column совать)

Если тебе нужен постоянный заголовок, а не скролящийся с контентом (sticky header), то вполне логично разместить Column Header LazyColumn

Silent829- Автор вопроса
Konstantin Dovnar
Если тебе нужен постоянный заголовок, а не скролящ...

Почему логично юзать нестедскроллинг? Предпочту его не юзать, если мне оно не надо, тут можно и без него обойтись

Silent829
Почему логично юзать нестедскроллинг? Предпочту ег...

Откуда ты взял нестедскроллинг? Сам придумал — сам обошёл:)

Silent829- Автор вопроса
Konstantin Dovnar
Откуда ты взял нестедскроллинг? Сам придумал — сам...

А, это когда задаешь Column модификатор verticalScroll(…) Хм… попробую

Silent829
А, это когда задаешь Column модификатор verticalSc...

Зачем? Обычный Column у тебя и не должен скроллиться вовсе. Скроллится только LazyColumn

Silent829- Автор вопроса
Konstantin Dovnar
Зачем? Обычный Column у тебя и не должен скроллит...

я и не говорю что она должна скроллиться, я говорю что ошибка про нестедскроллинг будет только когда у Column задан такой модификатор, при его отсутствии не должно быть ошибок

Silent829
я и не говорю что она должна скроллиться, я говорю...

Видимо я тебя не так понял. В таком случае да. И растягиваешь lazy на всю оставшуюся ширину.

Silent829- Автор вопроса
Konstantin Dovnar
Видимо я тебя не так понял. В таком случае да. И ...

Вот кстати интересно- нужно ли задавать LazyColumn обязательно модификатор fillMaxSize() чтобы мол ограничить ее высоту для производительности? Если говорить про ширину, то я item-ам передаю в модификатор модификатор с fillMaxWidth(), не задавая его внутри самого @Composable item-а. А вот про высоту хз

Silent829
Вот кстати интересно- нужно ли задавать LazyColumn...

Не уверен, как оно работает внутри, но отсутствие высоты вполне себе может вылиться в ошибку, т.к. Column не будет знать насколько большим отрисовывать Lazy. С шириной таких проблем как-раз кажется быть не должно. Но лучше всего просто взять да проверить.

Silent829- Автор вопроса

@andkulikov можно Вас попросить прокомментировать?

второй вариант более логичен, да. как и остальные заметили. стики хеадер скорей полезен когда таких хедеров несколько внутри списка, чтобы они сменялись когда доскролили до следующего хедера

Silent829
Вот кстати интересно- нужно ли задавать LazyColumn...

нет, явно ставить fillMaxSize() не обязательно. он итак не может занять размер больше чем доступно ему от его парента. fillMaxSize() нужен только чтобы описать должен ли LazyColumn занять весь размер даже если элементов меньше чем нужно чтобы заполнить все доступное место. так как дефолтное поведение это типа wrap_content

Silent829- Автор вопроса

А почему нельзя просто item использовать для титула перед items?

Silent829
он не будет статичным

А если у тебя заголовок который должен прилипнуть находится где то в середине item ов, как ты без stickyHeader это реализуешь?

Silent829- Автор вопроса

Похожие вопросы

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Привет, такой вопросик появился кажется ли вам что Rust слишком сложный/строгий для высокоуровневого программирования и слишком "безопасный"/строгий для низкоуровневого?
Крокант
10
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
Всем привет. Хотел бы написать для себя свою ос. Причины: 1) нужен опыт в чем-то 2) будет меньше весить 3) свое, но там будут свои задумки Я понимаю что нужно писать для всег...
Shadow Akira
18
А какие существуют способы обработки ошибок выделения памяти в ядре? Т.е., допустим, есть функция, которая возвращает адрес свободной страницы в физической памяти и диапазон в...
disba1ancer
51
Всем привет! Скажите, никто не пытался уменьшить размер процесса ssl, которые ассоциируется с открытым соединением (не помню точное название этого процесса, но там была какая-...
Алексей
20
5? да там все 10
Boris Vinogradov
12
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
Карта сайта