Как запустить lazyRow в последнем индексе Jetpack Compose?
Как я могу заставить lazyRow перейти к последнему индексу при запуске приложения?
2 ответа
Решение
@Composable
fun MessageList(messages: List<Message>) {
val listState = rememberLazyListState()
// Remember a CoroutineScope to be able to launch
val coroutineScope = rememberCoroutineScope()
LazyColumn(state = listState) {
// ...
}
ScrollToTopButton(
onClick = {
coroutineScope.launch {
// Animate scroll to the first item
listState.animateScrollToItem(index = lastIndex)
}
}
)
}
Пожалуйста, обратитесь к документации для получения дополнительной информации здесь
Вы можете сделать то же самое для LazyRow
Вы можете использовать метод
animateScrollToItem
:
Что-то вроде:
val itemsList = //... your list
val listState = rememberLazyListState()
// Remember a CoroutineScope to be able to launch
val coroutineScope = rememberCoroutineScope()
LazyColumn(state = listState) {
items(itemsList){
Text( "Item $it" )
}
}
Для автоматического запуска вы можете использовать:
DisposableEffect(Unit) {
coroutineScope.launch {
listState.animateScrollToItem(index = itemsList.size-1)
}
onDispose { }
}