Jetpack Compose UI中设置内容视图的方法

6

我有三个问题。

  1. setViewContentsetContent 都接受类似于 composable 函数的输入参数。那么,setViewContentsetContent 之间有什么区别以及它们的使用场景是什么?你可以在 androidx.compose 包中看到 setViewContent
  2. setContentsetViewContent 都返回 CompositionContext?。那么我们将如何使用 CompositionContent 以及用途是什么?
  3. 是否有任何方法将现有的 layout.xml 与新的 compose ui 集成到同一个活动或片段中。
1个回答

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

这不是Compose - IgorGanapolsky
1
是的,它是我的朋友 :) AndroidView 是一个可组合函数,用于将一个 View 添加到另一个可组合函数中。 - nglauber

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接