我在XML布局文件中添加了一个ComposeView。在我的活动中,我使用视图绑定来膨胀这个文件。当我试图调用binding.myComposeView.setContent { ... }时,我会得到以下编译错误:Unresolved reference: setContent。当我查看生成的绑定文件时,myComposeView的类型是View,而不是ComposeView。当我使用findViewById<ComposeView>(R.id.myComposeView).setContent { ... }时,一切都很好。为什么绑定没有正确生成?如何使用与ComposeView的视图绑定
发布于 2021-11-08 20:04:20
原来我有两个版本的相同的布局:肖像和水平。我把肖像画转换成一幅,用LinearLayout代替了ComposeView。但是,在水平布局中,myComposeView仍然是一个LinearLayout。这就是为什么创建的视图绑定类有一个类型为myComposeView的字段View,而不是ComposeView。在两个布局版本中,具有相同id的视图具有不同的类型。
发布于 2021-10-07 11:02:18
在您的活动的onCreate中设置绑定的方式可能有问题。您是否使用了以下代码的代码?:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
binding.composeView.setContent {
MaterialTheme {
Text(text = "Hello World")
}
}
}https://stackoverflow.com/questions/69471887
复制相似问题