TextButton 的文字未更新

问题描述 投票:0回答:2

我正在使用 jetpack compose 制作我的第一个 Android 应用程序。我正在尝试制作一个文本按钮,每次按下时都会更新其文本,但是虽然它在设备上显示得很好,但它不会更新按钮

@Composable
fun ShotButton(){
    var state by remember { mutableStateOf("N") }
    TextButton(modifier = Modifier.size(60.dp, height = 70.dp),onClick = {
        if(state == "N") state = "Y"
        if(state == "Y") state = "R"
        if(state == "R") state = "N"

    }) {
        Text(text = state, fontSize = 60.sp)
    }
}

我对按钮和状态变量的声明方式做了很多更改,但文档并没有真正消除我的疑虑

android kotlin android-jetpack-compose android-jetpack
2个回答
0
投票

你可以使用

when
:

@Composable
fun ShotButton() {
    var state by remember { mutableStateOf("N") }
    TextButton(modifier = Modifier.size(60.dp, height = 70.dp), onClick = {
        when (state) {
            "N" -> state = "Y"
            "Y" -> state = "R"
            "R" -> state = "N"
        }
    }) {
        Text(text = state, fontSize = 60.sp)
    }
}

0
投票

尝试使用 When 来检查不同的状态条件,如下所示

 onClick = {
        when(state) {
            "N" -> state = "Y"
            "Y" -> state = "R"
            "R" -> state = "N"
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.