Прокрутка до элемента lazyColumn с помощью ключа элемента, а не индекса элемента.Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Прокрутка до элемента lazyColumn с помощью ключа элемента, а не индекса элемента.

Сообщение Anonymous »

Я создал сложную составную композицию lazyColumn, имитирующую карту (действительно, мне нужен список карточек, содержащий потенциально много элементов каждая, а вложение LazyColumn в карту невозможно (из-за того, что «был измерен компонент с вертикальной прокруткой» с бесконечными ограничениями максимальной высоты"). Итак, мой составной объект получает список элементов данных такого типа:

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

data class CardItems(val cards: ImmutableList)

data class Card(
val header: String,
val items: ImmutableList,
)
В LazyColumn для рисования одного CardItem может потребоваться несколько LazyListScope.item.
Пока все хорошо.
Но иногда мне нужно перейти к определенному элементу CardItem. К сожалению, я не могу использовать функцию LazyListState.animateScrollToItem(index: Int), поскольку она принимает индекс элемента в качестве параметра, и я не могу сказать, какой индекс элемента lazyColumn мне нужен, поскольку его может быть сложно вычислить.
Лучше всего для меня было бы иметь LazyListState.animateScrollToItem(key: Any), поскольку все мои элементы LazyColumn имеют уникальный ключ, который я могу передать в качестве параметра своему состоянию следующим образом:

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

data class CardItems(
val cards: ImmutableList,
val scrollToItemWithKey: Any?, // The key of the lazyColumn item I want to scroll to
)

data class Card(
val header: String,
val items: ImmutableList,
)

@Composable
fun MyContent(cardItems: CardItems) {
val scrollState = rememberLazyListState()
LazyColumn {
// compose cards
}

LaunchedEffect(key1 = cardItems.scrollToItemWithKey) {
cardItems.scrollToItemWithKey?.let { key ->
scrollState.animateScrollToItem(key = key, scrollOffset = 0)
}
}
}
Но очевидно, что этого ScrollToItemWithKey не существует. Есть ли другой способ добиться этой прокрутки?

Подробнее здесь: https://stackoverflow.com/questions/787 ... item-index
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Прокрутка до элемента lazyColumn с помощью ключа элемента, а не индекса элемента.
    Anonymous » » в форуме Android
    0 Ответы
    32 Просмотры
    Последнее сообщение Anonymous
  • Вертикальная прокрутка lazyColumn очень медленная.
    Anonymous » » в форуме Android
    0 Ответы
    45 Просмотры
    Последнее сообщение Anonymous
  • Вертикальная прокрутка lazyColumn очень медленная.
    Anonymous » » в форуме Android
    0 Ответы
    43 Просмотры
    Последнее сообщение Anonymous
  • ModalBottomSheet перехватывает, когда прокрутка LazyColumn останавливается
    Anonymous » » в форуме Android
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Jetpack Compose — прокрутка LazyColumn не работает при реализации пейджинга и быстрой прокрутки
    Anonymous » » в форуме Android
    0 Ответы
    59 Просмотры
    Последнее сообщение Anonymous

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