前言
在 Jetpack Compose 中,Row 本身 不支持滚动到某一项。
如果你希望实现横向滚动的布局,并且能够滚动到指定项,你应该使用 LazyRow(而不是普通的 Row)。
注意
普通
Row放在HorizontalScrollable或Modifier.horizontalScroll()中虽然可以横向滚动,但 无法精确滚动到某一项,因为没有类似scrollToItem的 API。此时只能通过
scrollState.animateScrollTo(value: Int)手动计算像素位置,非常不推荐。
完整实例
1 |
|
滚动到指定索引
1 | LaunchedEffect(selectTitle) { |
LazyRow和Row
LazyRow/LazyColumn与Row/Column怎样选择?
个人建议:
只要列表的数据会超出显示区域的,都建议使用
LazyRow/LazyColumn,他只会渲染显示的部分,使用Row/Column会出现卡顿。