HorizontalPager IndexOutOfBoundExceptionAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 HorizontalPager IndexOutOfBoundException

Сообщение Anonymous »

Мне не удалось добиться надежного воспроизведения, но я пытаюсь настроить HorizontalPager, который представляет собой карусель изображений, но он разбивается на страницы. Кажется, возникает исключение IndexOutOfBoundException, но я не знаю почему.

Код: Выделить всё

@Composable
fun Card(
imageUrlList: List
) {

val pagerState = rememberPagerState { imageUrlList.size }
HorizontalPager(
state = pagerState
) {
val imageUrl = imageUrlList[it]
...
)
)
Похоже, что при вызове imageUrlList[it] будет получено исключение IndexOutOfBoundException.
Как правильно использовать HorizontalPager со списком, который размер может измениться?
Я пробовал разные вещи, такие как установка imageUrlList в ImmutableList и val pagerState = key(LocalView.current) {memberPagerState { imageUrlList.size } так как я думал, что, возможно, проблема с RememberSaveable в RememberPagerState, но он все равно вылетает, я думал реже.
Последний раз я попробовал добавить журнал в HorizontalPager, в котором написано

Код: Выделить всё

Index $it out of bounds for length ${imageUrlList.size}. PagerState page count is ${pagerState.pageCount}
, и я получу зарегистрированные ошибки типа «Индекс 6 выходит за пределы для длины 6. Число страниц PagerState равно 24». Похоже, что в какой-то момент список каким-то образом очищается, но состояние пейджера запоминает наибольшее количество, которое оно имело ранее, что приводит к этой ошибке.

Подробнее здесь: https://stackoverflow.com/questions/790 ... dexception
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»