android - 如何获取 LazyList 项的索引

标签 android android-jetpack-compose android-jetpack-compose-layout

在这里,我使用了具有 snappingLayout 行为的 LazyRow,并且该 LazyRow 的项目数是包含某些日期列表的列表的大小

GetScrollIndex(dateName = listOf("星期一", "星期二", "星期三", "星期四"))

我想更改文本值

text = dateName[0] 将值硬编码为动态值,该值将根据 snappingLayouts 索引号的位置更改其值

这是我尝试过的

enter image description here

@Composable
fun MainUi() {
    Column(
        modifier = Modifier
            .fillMaxSize()
            .background(MaterialTheme.colorScheme.background)
    ) {
        GetScrollIndex(dateName = listOf("Monday", "Tuesday", "Wednesday", "Thursday"))
    }
}
@Suppress("OPT_IN_IS_NOT_ENABLED")
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun GetScrollIndex(dayName: List<String>) {
    val state = rememberLazyListState()
    val snappingLayout = remember(state) { SnapLayoutInfoProvider(state) }
    val flingBehavior = rememberSnapFlingBehavior(snappingLayout)
    Column {
        Text(
            modifier = Modifier
                .fillMaxWidth(),
            text = dateName[0],
            style = GoogleSansTypography.titleMedium,
            color = MaterialTheme.colorScheme.secondary,
            textAlign = TextAlign.Center
        )
        LazyRow(
            state = state,
            flingBehavior = flingBehavior,
            modifier = Modifier
                .fillMaxSize(),
            contentPadding = PaddingValues(
                horizontal = 30.dp,
                vertical = 40.dp
            ),
            horizontalArrangement = Arrangement.spacedBy(10.dp)
        ) {
            items(dayName.size) {
                Card(
                    modifier = Modifier
                        .fillParentMaxSize(),
                    colors = CardDefaults.cardColors(MaterialTheme.colorScheme.primary)
                ) {

                }
            }
        }
    }
}

最佳答案

您可以使用 itemsIndexed(items) 重载,例如

itemsIndexed(items){ index: Int, item: String ->

}

关于android - 如何获取 LazyList 项的索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74604460/

相关文章:

android - 在应用计费 Proguard 重复 zip 条目

android - 带有 Bower 的 Polymer 导致 Cordova 中的构建失败

Android 方法未定义

android - 如何在android jetpack compose中显示工具提示

android - 如何在 Android Jetpack Compose 中向 Card 对象添加图像背景?

android - VerticalArrangement = Arrangement.Bottom 列不起作用

Android 相当于 Java 的 Swing JSpinner

android - onKeyEvent 修饰符在 Jetpack Compose 中不起作用

android - 如何更改 android jetpack compose bottomAppBar 图标的颜色?

android - Jetpack 中的权重组合