android - 如何在 Jetpack Compose 中创建垂直无限轮播?

标签 android android-jetpack-compose

我正在尝试构建一个可滚动的列(最好是 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
            }
        )
    }
}

关于android - 如何在 Jetpack Compose 中创建垂直无限轮播?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69937460/

相关文章:

android - 我怎样才能在android compose kotlin中进行一键拖动和多点触摸拖动

c# - Xamarin.Forms : Rendering Xamarin. native 对话框中的 Froms 控件 - 忽略 wrap_content

android - Android在真实设备上显示操作栏项目

android - 找不到 'kotlinPlugin' 和 'darkThemeColors'

android - 在 Jetpack Compose LazyColumn 项目中检测到点击手势时返回错误的项目

android - 对一组闪烁的可组合项进行动画处理,控制同步/计时

android - 如何使用 python 打开 adb shell 并在 shell 中执行命令

android - 第二次登录时facebook unity sdk 6.0崩溃应用程序

java - Box2D libgdx contactlistener

android - 如何在行内排列元素,其中一个元素具有无限宽度?