如何解决Android:Activity 中的 Jetpack Compose 和 XML
- 有人可以告诉我如何在同一个中添加 jetpack 撰写 y xml 活动。请举个例子
解决方法
如果您想在您的 XML 文件中使用 Compose,您可以将其添加到您的布局文件中:
<androidx.compose.ui.platform.ComposeView
android:id="@+id/my_composable"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
然后,设置内容:
findViewById<ComposeView>(R.id.my_composable).setContent {
MaterialTheme {
Surface {
Text(text = "Hello!")
}
}
}
如果你想要相反的,在你的撰写中使用一个 XML 文件,你可以使用这个:
AndroidView(
viewBlock = { context: Context ->
val view =
LayoutInflater.from(context)
.inflate(R.layout.my_layout,null,false)
val textView = view.findViewById<TextView>(R.id.text)
// do whatever you want...
view // return the viw
},update = { view ->
// Update view
}
)
,
https://developer.android.com/jetpack/compose/interop?hl=en
要嵌入 XML 布局,请使用 AndroidViewBinding API,它由 androidx.compose.ui:ui-viewbinding
库提供。为此,您的项目必须启用视图绑定。
AndroidView 与许多其他内置可组合对象一样,接受一个 Modifier 参数,该参数可用于设置其在父可组合对象中的位置。
@Composable
fun AndroidViewBindingExample() {
AndroidViewBinding(ExampleLayoutBinding::inflate) {
exampleView.setBackgroundColor(Color.GRAY)
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。