首页 > 解决方案 > 在 Jetpack Compose UI 中设置内容视图的方法

问题描述

我有三个问题

  1. setViewContent哪个接受composable函数作为输入参数,类似于 setContent. setViewContent那么, andsetContent和它的用例之间有什么区别。您可以setViewContentandroidx.compose包装中看到。
  2. setContent并且setViewContent都返回CompositionContext?。因此,我们将如何使用CompositionContent.
  3. 有没有办法将现有的layout.xml与新compose ui的整合到相同的活动或片段中。

标签: androidkotlinandroid-jetpack-compose

解决方案


以下是我的评论和我的理解:

  1. setContent将使可组合作为参数作为您的活动/片段的根组件传递。另一方面,setViewContent将添加一个FrameLayout作为您的活动/片段的根元素,允许您在其上添加另一个视图。
  2. 这两种方法都返回一个Composition对象,afaik,它仅用于显示内容 viasetContent并清除从组合中创建的层次结构 via dispose
  3. 是的,dev14你可以AndroidView这样使用:
AndroidView(resId = R.layout.my_layout) { view ->
    val textView = view.findViewById<TextView>(R.id.textView)
    ...    
}

推荐阅读