让我们假设我正在使用一些旨在提供一些UI窗口小部件的库。
假设该库提供了一个名为FancyButton
的Button Widget。
另一方面,我有一个使用Android Studio 4创建的新项目,可让我使用Empty Compose Activity
创建一个新项目。
问题是:
如何将这个FancyButton
添加到视图堆栈?可以吗?或者使用Jetpack Compose,我只能使用专门为Jetpack Compose开发的组件。在这种情况下,AFAIK我只能使用Android标准组件(Text
,MaterialTheme
等)。
如果我尝试使用类似这样的内容:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
Greeting("Android")
FancyButton(context, "Some text")
}
}
}
然后我收到此错误:
e: Supertypes of the following classes cannot be resolved. Please make sure you have the required dependencies in the classpath.
答案 0 :(得分:5)
当前(自0.1.0-dev04
起),对此没有好的解决方案。将来,您将可以简单地将其称为FancyButton("Some text")
(不需要context
)。
您可以在撰写代码here中看到演示的样子。
答案 1 :(得分:0)
在alpha 06
中更新
可以在可组合文件中导入 Android View 实例。
使用ContextAmbient.current
作为视图的context
参数。
Column(modifier = Modifier.padding(16.dp)) {
// CustomView using Object
MyCustomView(context = ContextAmbient.current)
// If the state updates
AndroidView(viewBlock = ::CustomView, modifier = modifier) { customView ->
// Modify the custom view
}
// Using xml resource
AndroidView(resId = R.layout.view_demo)
}