android 如何在列表中只选择一个项目(LazyColumn)?

jecbmhm3  于 2023-04-04  发布在  Android
关注(0)|答案(1)|浏览(135)

我有一个地址列表,我希望我的用户只选择一个地址的航运

wn9m85ua

wn9m85ua1#

您只需要跟踪选择的索引。

@Composable
fun SingleSelectionList() {
    var selectedIndex by remember {
        mutableStateOf(-1)
    }
    LazyColumn(
        Modifier
            .fillMaxSize()
            .selectableGroup() // Optional, for accessibility purpose
    ) {
        items(count = 10) { index ->
            Text(
                text = "Item $index",
                Modifier
                    .fillMaxWidth()
                    .selectable(
                        selected = selectedIndex == index,
                        onClick = {
                            selectedIndex = index
                        }
                    )
                    .background(
                        if (selectedIndex == index) Color.Gray
                        else Color.Transparent
                    )
                    .padding(8.dp)
            )
        }
    }
}

如果你想允许取消选择,你可以把onClick改为:

selectedIndex = if (selectedIndex == index) -1 else index

相关问题