相关疑难解决方法(0)

Jetpack Compose State:修改类属性

下面的两个示例简单地将“a”添加到给定的默认值。该compose_version使用的1.0.0-alpha03是最新的截至今天(据我所知)。

这个例子与我在研究过程中发现的大多数例子最相似。

示例 1

@Composable
fun MyScreen() {
    val (name, setName) = remember { mutableStateOf("Ma") }

    Column {
        Text(text = name) // 'Ma'
        Button(onClick = {
                setName(name + "a") // change it to 'Maa'
        }) {
            Text(text = "Add an 'a'")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

然而,这并不总是实用的。例如,数据比单个字段更复杂。例如一个类,甚至一个Room data class.

示例 2

// the class to be modified
class MyThing(var name: String = "Ma");


@Composable
fun MyScreen() {
    val (myThing, setMyThing) = remember { mutableStateOf(MyThing()) }

    Column …
Run Code Online (Sandbox Code Playgroud)

android state kotlin android-jetpack android-jetpack-compose

8
推荐指数
2
解决办法
1746
查看次数