【发布时间】:2021-12-31 10:04:06
【问题描述】:
开始学习 JetPack Compose。我现在正在为国家托管而苦苦挣扎。我有一个简单的示例来按下按钮以在 Text 组件中显示数组的内容。如果变量在我的@Composable 中,我可以让它工作。在应用状态提升(为我的可组合变量获取变量)时,我发现了一些问题。
这是运行良好的代码
var listadoNumeros = listOf<Int>(1, 2, 3, 4, 5)
NextValue(listadoNumeros)
@Composable
fun NextValue(listado: List<Int>) {
var position by rememberSaveable {mutableStateOf (0)}
Column(
modifier = Modifier
.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.SpaceAround
){
Text(text = "Value in Array ${listado[position]}")
Button(onClick = { position += 1 }) {
Text(text = "Next")
}}}
这是无法正常工作的代码
var listadoNumeros = listOf<Int>(1, 2, 3, 4, 5)
var n by rememberSaveable {mutableStateOf (0)}
NextValue(position = n,listadoNumeros)
@Composable
fun NextValue(position:Int,listado: List<Int>) {
Column(
modifier = Modifier
.fillMaxSize(),
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.SpaceAround
) {
Text(text = "Value in Array ${listado[position]}")
Button(onClick = { position += 1 }) {
Text(text = "Next")
}}}
如您所料,错误消息是“position 无法重新分配”。我明白为什么,但不知道如何解决它。我在TextField等中阅读了onValueChanged,但不知道它是否适用于此。
【问题讨论】:
标签: android kotlin state android-jetpack-compose