Еще вопрос. Задача такая - есть список. Проскроллили до конца

- делается подгрузка данных, данные вставляются в конец списка, но нужно чтобы позиция скролла осталась на fistVisibleIndex до подргузки новой порции данных, то есть, мы прокрутили вниз, догрузились данные, но скролл остался на текущем месте.
Это делается с помощью АПИ списков или надо самому в коде вычислять последную позицию запоминать ее и потом вручную сроллить?
Попробовал такой код:
LazyColumn(
state = listState,
content = {
itemsIndexed(
items = listOfData,
key = {index, item ->
val id = Integer.parseInt(item.replace("Item ", ""))
Log.d("RowsList", "id $id")
id
}
) { index, item ->
val isSelected = selectedIndex == index
RowItem(
isSelected = isSelected,
data = item,
onSelected = {
onSelected(index)
},
)
}
}
)
Пояснение - в списке хранятся строки Item №. В блоке
key = {index, item ->
val id = Integer.parseInt(item.replace("Item ", ""))
Log.d("RowsList", "id $id")
id
}
выдаю id для элемента списка. Как я понял, если задать id, то позиция должна сохараняться автоматически при дозагрузке данных

5 ответов

3 просмотра

Вы делаете пагинацию вручную? Может стоит посмотреть в сторону paging-compose?

поидее так должно работать, да. причем вы ведь всегда элементы в конец списка добавляете? то есть индекс в списке для ожидаемого первого видимого элемента не меняется, в таком случае я ожидаю что это даже без указания key должно работать. можете написать в личку если есть возможность поделиться большим количеством деталей

Aleksandr-Petrov Автор вопроса
Andrey Kulikov
поидее так должно работать, да. причем вы ведь все...

вроде разобрался - нужно было состояние списка вынести вверх

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

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

Продолжая диалог про свифт в проде – сейчас возник вопрос в активном наборе бекендеров. В основном в нашей компании мы фанаты Java Spring и полностью ей довольны. Однако найм ...
Guseyn
27
Читаю сейчас [нет, уже больше не читаю!] курсовую о Булгакове, написанную, похоже, с помощью ChatGPT. Это удивительный психоделический опыт. Текст в основном написан в стиле б...
✨ Uni [🌊 В отпуске]
1
Всем привет! поделитесь, пож-та, как кто дебажил / решал проблему с 504 Time out ошибкой от nginx, когда стучишься на свой vapor сервер? в логах /var/log/nginx/error.log е...
Paul
24
Я тут пытаюсь переработать архитектуру подсистемы памяти ядра во что-то осмысленное. Есть pmm, который создает набор range’ей(пока что только для ядра, потом для юзерспейса), ...
Evg Resh
19
Устроился на новую работу тут везде отступы 2 пробела. На всех моих предыдущих проектах, везде было 4, все мои пэт проекты, либы и тд. Первые дни я прям взвыл, сейчас уже прив...
Сергей Романенко
7
Спасибо! то есть должны пробрасываться до уровня os Linux-a?
Paul
10
Товарищи, объясните недалекому: спустя какое-то время tgbot перестал отправлять сообщения. В логах пусто, просто уснул. Видел в issues на гите, что проблема не только у меня. ...
advanc3d
9
Или кинули уже?
Magic
6
Всем привет! Решил написать тесты на апи, однако, sendRequest ругается и плюется варнингами и просит асинхронный контекст внутри заполнения request. Немного не понимаю, как мн...
Misha Moshenski
2
Всем привет, описание проблемы: локально достучаться до сервера не получилось, получаю ошибку с текстом Packet received out-of-order. Expected 0; got 45. Проблема с протоколом...
Yernur
1
Карта сайта