Android Compose:composables可以存储多个状态吗?
来自官方文件() 可组合函数可以使用memory Composable在内存中存储单个对象。在初始合成期间,由memory计算的值存储在合成中,并且在重新编译期间返回该存储的值。您可以使用memory来存储可变和不可变对象 所以每个可组合使用一个Android Compose:composables可以存储多个状态吗?,android,android-jetpack-compose,Android,Android Jetpack Compose,来自官方文件() 可组合函数可以使用memory Composable在内存中存储单个对象。在初始合成期间,由memory计算的值存储在合成中,并且在重新编译期间返回该存储的值。您可以使用memory来存储可变和不可变对象 所以每个可组合使用一个记住,但我在网上发现,在可组合中使用了不止一个状态的代码,实际上来自官方来源: 代码运行良好,但它存储两个状态,不是吗 我假设文档的意思是,使用一个记住可以存储一个对象,而不是每个组件不能有多个记住值 @Composable fun DropdownDe
记住
,但我在网上发现,在可组合中使用了不止一个状态的代码,实际上来自官方来源:
代码运行良好,但它存储两个状态,不是吗 我假设文档的意思是,使用一个
记住
可以存储一个对象,而不是每个组件不能有多个记住
值
@Composable
fun DropdownDemo() {
var expanded by remember { mutableStateOf(false) }
var selectedIndex by remember { mutableStateOf(0) }
val items = listOf("A", "B", "C", "D", "E", "F")
val disabledValue = "B"
Box(modifier = Modifier.fillMaxSize().wrapContentSize(Alignment.TopStart)) {
Text(items[selectedIndex],modifier = Modifier.fillMaxWidth().clickable(onClick = { expanded = true }).background(
Color.Gray))
DropdownMenu(
expanded = expanded,
onDismissRequest = { expanded = false },
modifier = Modifier.fillMaxWidth().background(
Color.Red)
) {
items.forEachIndexed { index, s ->
DropdownMenuItem(onClick = {
selectedIndex = index
expanded = false
}) {
val disabledText = if (s == disabledValue) {
" (Disabled)"
} else {
""
}
Text(text = s + disabledText)
}
}
}
}
}