Код: Выделить всё
data class CardItems(val cards: ImmutableList)
data class Card(
val header: String,
val items: ImmutableList,
)
Пока все хорошо.
Но иногда мне нужно перейти к определенному элементу 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)
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/787 ... item-index