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

- делается подгрузка данных, данные вставляются в конец списка, но нужно чтобы позиция скролла осталась на 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 ответов

12 просмотров

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

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

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

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

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

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

Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
7
Я правильно понимаю что нет способов получить список ожидающих заявок на вступление в группу с помощью бота из mtproto?
Шамиль Прилов
7
День добрый, подскажите пожалуйста, есть ли какой-то способ сказать ребару не компилировать определённое приложение? Всю доку их перечиатл ничего подобного не нашёл
Кирилл
14
Вопрос на перед, на следующую пятницу. Сколько строк кода можно вешать на одного программиста, понятно что если проект хорошо написан то можно и миллион. Но есть же где то пре...
AlekseyK Kluchnikov
31
Немного оффтопа: а кто на чем сидит для осдева в плане ide/редактора? Последнее время сидел на vscode, но я его прям не могу нормально воспринимать, перешел на сlion, но меня...
Evg Resh
29
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Что за японодичь? Мне хоть m68k, хоть 8080, 8088, на любом можно что-то создать
Егор
5
Вот объясните, как это работает: Вот есть допустим unix-подобная система, и программа запускает допустим printf или fork, как это передается ядру, и как оно обрабатывать начин...
Егор
14
и да, кто сказал что у эпла именно такой isa?
Boris Vinogradov
5
Добрый день. Мне посоветовали обратиться к вам в чат за помощью. Ситуация описана на скрине. Как мне сказали, мне на бота навесили флудвейт. Есть ли возможность снять его ра...
OVERLINK
7
Карта сайта