从 Jetpack Compose 中的另一个小部件访问一个小部件
Access a widget from another widget in jetpack compose
使用传统的 XML 您可以使用它的 ID 或标签获取视图的实例。
这在 Jetpack Compose 中如何实现?
Card(elevation = 1.dp, shape = RoundedCornerShape(8.dp), color = Color.Transparent) {
// TARGET is here
Padding(padding = 8.dp) {
Text(text = "Net stat", style = +themeTextStyle { h6 })
}
}
Text(text = netStatusState.value)
HeightSpacer(height = 10.dp)
Divider()
HeightSpacer(height = 10.dp)
Card(elevation = 1.dp, shape = RoundedCornerShape(8.dp), color = Color.Transparent) {
Padding(padding = 8.dp) {
Clickable(onClick = {
// MODIFY (Remove, change element, update attr) the target
}) {
Button(text = "Click me if you can")
}
}
}
它甚至需要这样的功能,还是全部使用状态完成?
可组合项没有 ID,您通常不需要获取可组合项的实例。将可组合函数视为打印语句会很有帮助。就像 println() 函数获取一些数据并将其写入控制台一样,可组合函数获取数据并将 measure/layout/draw 这些数据显示在屏幕上。
如果您更改数据,并且数据位于使用@Model 注释的 class 中,Jetpack compose 系统将使用新状态再次自动调用适当的函数,并且您的 UI 将被更新。
使用传统的 XML 您可以使用它的 ID 或标签获取视图的实例。
这在 Jetpack Compose 中如何实现?
Card(elevation = 1.dp, shape = RoundedCornerShape(8.dp), color = Color.Transparent) {
// TARGET is here
Padding(padding = 8.dp) {
Text(text = "Net stat", style = +themeTextStyle { h6 })
}
}
Text(text = netStatusState.value)
HeightSpacer(height = 10.dp)
Divider()
HeightSpacer(height = 10.dp)
Card(elevation = 1.dp, shape = RoundedCornerShape(8.dp), color = Color.Transparent) {
Padding(padding = 8.dp) {
Clickable(onClick = {
// MODIFY (Remove, change element, update attr) the target
}) {
Button(text = "Click me if you can")
}
}
}
它甚至需要这样的功能,还是全部使用状态完成?
可组合项没有 ID,您通常不需要获取可组合项的实例。将可组合函数视为打印语句会很有帮助。就像 println() 函数获取一些数据并将其写入控制台一样,可组合函数获取数据并将 measure/layout/draw 这些数据显示在屏幕上。
如果您更改数据,并且数据位于使用@Model 注释的 class 中,Jetpack compose 系统将使用新状态再次自动调用适当的函数,并且您的 UI 将被更新。