Composable
可组合元素/页面
@Composable
fun ProfileScreen() {
val nav = localNavController.current
var i1 by rememberSaveable { mutableStateOf("") }
Column(modifier = Modifier
.windowInsetsPadding(WindowInsets.systemBars)
.fillMaxWidth()
.background(Color.White)
) {
Text("我的")
}
}
Preview预览
在开发IDE中实时预览查看渲染效果。写了Preview后,在android studio中点击右上角的Split
@Preview(showBackground = true, showSystemUi = true)
@Composable //只能在Composable函数使用Preview,预览一个组件/页面
fun HomeScreen() {
//不能使用navigation,否则报错render problem
// val nav = localNavController.current
var i1 by rememberSaveable { mutableStateOf("") }
Column(modifier = Modifier.windowInsetsPadding(WindowInsets.systemBars)) {
Text("首页", color = Color(0f,0f,255f,.2f), fontWeight = FontWeight.Bold)
TextField(value = i1, onValueChange = { i1 = it })
Button(onClick = {
// nav.navigate("profile")
}) {
Text("跳转到个人中心")
}
}
}
Immutable
表示class或数据结构的结构不可变,帮助编绎器进行性能优化,避免不必要的重组。当属性是val声明时,其值不可变化时用这个注解
@Immutable
data class User(val name: String, val age: Int)
@Immutable
class Person(var name: String, var age: Int)