是的,Android Jetpack Compose可以创建这样的列表。下面是一个示例代码:
@Composable
fun ListWithButtonsAndValues(
itemList: List,
onItemSelected: (String) -> Unit
) {
Column {
itemList.forEach { item ->
Row(
modifier = Modifier
.fillMaxWidth()
.clickable { onItemSelected(item) },
horizontalArrangement = Arrangement.SpaceBetween,
verticalAlignment = Alignment.CenterVertically
) {
Text(item)
var value by remember { mutableStateOf(0) }
Button(
onClick = { value++ }
) {
Text("+")
}
Text(value.toString())
}
Divider(thickness = 1.dp, color = Color.Gray)
}
}
}
该函数接受一个包含字符串的列表和一个当项被选中时调用的回调函数。使用 forEach
函数迭代列表中的每个项目,通过 Row
和 Column
实现水平和垂直布局,使用 clickable
添加项被点击的监听器。使用 remember
和 mutableStateOf
存储可变的值,并在每次点击按钮时更新该值。最后,使用 Divider
在项之间添加分隔线。
您可以这样使用该函数:
ListWithButtonsAndValues(
itemList = listOf("Item 1", "Item 2", "Item 3"),
onItemSelected = { selectedItem ->
// Do something with the selected item
}
)