在这里,我使用了具有 snappingLayout 行为的 LazyRow,并且该 LazyRow 的项目数是包含某些日期列表的列表的大小
GetScrollIndex(dateName = listOf("星期一", "星期二", "星期三", "星期四"))
我想更改文本值
text = dateName[0] 将值硬编码为动态值,该值将根据 snappingLayouts 索引号的位置更改其值
这是我尝试过的
@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/