只读的 mutableStateListOf

Read-only mutableStateListOf

在 Jetpack Compose 中,如果我有一个 MutableState 变量,我可以将它的状态作为 “只读” 值公开给其他 类 作为State<String>,就像:

private val _title = mutableStateOf("abc")
val title: State<String> = _title

有没有办法用 SnapshotStateList<> 做到这一点?例如,我将如何使用:

private val _titles = mutableStateListOf<String>(...)
val titles: ??? = _titles

我知道我可以通过使用 MutableState<List<String>> 来解决这个问题,但是每次我想要 add/remove 项时我都必须提供一个全新的列表。

mutableStateListOf 创建 SnapshotStateList 的对象,它是 MutableList 的子类,因此您可以使用 List:

val titles: List<String> = _titles

另外,mutableStateOf 你可以使用带委托的单个变量:

var title by mutableStateOf("abc")
    private set