Ari*_*ik6 0 java kotlin android-jetpack-compose
我正在尝试使用活动中现有 XML 中的 Jetpack Compose UI 元素,使用databinding
和setContent()
。这是 xml 元素:
<androidx.compose.ui.platform.ComposeView
android:id="@+id/save_btn_compose"
android:layout_width="match_parent"
android:layout_height="wrap_content"
/>
Run Code Online (Sandbox Code Playgroud)
我在 kotlin 活动文件中使用此语法,它运行顺利:
binding.ComposeView.setContent{
MainActionButtonKt.MainActionButton(true, R.string.complete_job, R.drawable.ic_complete_btn_icon, false);
}
Run Code Online (Sandbox Code Playgroud)
java活动文件的等效项是什么?我尝试这样做:
binding.saveBtnCompose.setContent((composer, integer) -> {
MainActionButton(true, R.string.complete_job, R.drawable.ic_complete_btn_icon, false);
return null;
});
Run Code Online (Sandbox Code Playgroud)
但我得到一个编译错误:
required: boolean, int, Integer, boolean, Composer, int, int
found: boolean, int, int, boolean
reason: actual and formal argument lists differ in length
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?谢谢 !
小智 5
您可以使用。
在其他地方创建 kotlin 函数
fun setContent(composeView:ComposeView, composeparam1: Boolean){
composeView.setContent {
CallYourComposeFunction(composeparam1)
}
}
Run Code Online (Sandbox Code Playgroud)
然后通过从 xml 提供 composeView 从您的 java 代码中调用它。
归档时间: |
|
查看次数: |
2611 次 |
最近记录: |