[ Compose ] Interaction of AndroidView and ComposeView
[ Compose ] Interaction of AndroidView and ComposeView
·
Add AndroidView Into Compose
@Composable
private fun AndroidViewComposable() {
AndroidView(modifier = Modifier.fillMaxSize(), factory = { context ->
val view = TextView(context)
view.text = "Hello World"
view.setLayoutParams {
width = ViewGroup.LayoutParams.MATCH_PARENT
height = ViewGroup.LayoutParams.MATCH_PARENT
}
view.gravity = Gravity.CENTER
return@AndroidView view
})
}
Add ComposeView Into XML
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.compose.ui.platform.ComposeView
android:id="@+id/composeView"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</FrameLayout>
class HomeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityHomeBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.composeView.setViewCompositionStrategy(ViewCompositionStrategy.DisposeOnDetachedFromWindow)
binding.composeView.setContent {
Canvas(Modifier.fillMaxSize()) {
drawRect(Color.Red, size = size)
}
}
}
}
更多推荐



所有评论(0)