我正在尝试构建一个可滚动列(最好是 LazyColumn),它将在滚动到末尾后再次开始重新显示第一个项目。例如,看看这个闹钟,它将从 00..59 开始循环,然后再次从 0 开始平滑滚动。
我尝试过一个普通的 LazyColumn,它会显示 58,59,00..59,00,01,并在完成滚动(达到 59)后快速启动,但它看起来“便宜”。
@Composable
fun CircularList(
items: List<String>,
modifier: Modifier = Modifier,
isEndless: Boolean = false,
onItemClick: (String) -> Unit
) {
val listState = rememberLazyListState(
if (isEndless) Int.MAX_VALUE / 2 else 0
)
LazyColumn(
state = listState,
modifier = modifier
) {
items(
count = if (isEndless) Int.MAX_VALUE else items.size,
itemContent = {
val index = it % items.size
Text(text = items[index]) // item composable
}
)
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)