Google给出了以下示例,说明如何在XML中使用ComposeView并在片段中对其进行膨胀。
class ExampleFragment : Fragment() {
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View {
// Inflate the layout for this fragment
return inflater.inflate(
R.layout.fragment_example, container, false
).apply {
findViewById<ComposeView>(R.id.compose_view).setContent {
// In Compose world
MaterialTheme {
Text("Hello Compose!")
}
}
}
}
}
我有一个用java写的活动,而不是Kotlin。可以从Java活动中使用setContent吗?如果是这样的话,我正在与语法斗争。
2条答案
按热度按时间2eafrhcq1#
您可以简单地 Package 一个Kotlin函数,然后传递Activity示例并设置内容,而不是创建一个
AbstractComposeView
。例如:活动
onCreate(..)
:-(创建
AbstractComposeView
或ComposeView
的示例只有在我们想要使用编写UI(或在Fragment
中)呈现Activity的一部分时才方便)lymnna712#
是的,有可能。
首先,你应该创建一个
AbstractComposeView
的子类:然后将此视图设置为活动内容...
您还可以在任何布局文件中声明视图...
然后像往常一样调用
setContentView(R.layout.your_layout_file)
。