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

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

22 ответов

24 просмотра

Ну если он у тебя один и всегда вверху, то конечно второй вариант и можно даже в 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- Автор вопроса

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

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

Гайс, вопрос для разносторонее развитых: читаю стрим с юарта, нада выделять с него фреймы с определенной структурой, если ли чо готовое, или долбаться с ринг буффером? нада у...
Vitaly
9
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
длина пакета фиксированная, или меняется?
Okhsunrog
7
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
5
А в каком формате фреймы? Сам формат сейчас придумываешь, или что-то готовое нужно распарсить?
Okhsunrog
5
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Раз начали говорить про embassy, то присоединюсь со своими парой вопросов. 1) Есть ли сопоставимые аналоги для асинхронного кода в emdebbed? 2) Можно ли внутри задач embassy ...
NI_isx
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Карта сайта