#はじめに
先日こちらの記事にて、既存のレイアウトの中にJetpack Composeのレイアウトを組み込む方法を説明しました。
今回はJetpack Composeで作られたレイアウトの中で既存のAndroid ViewをaddViewする方法について説明します。
#Jetpack Composeのレイアウト内で既存のAndroid ViewをaddViewする
###サンプル
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Column {
// Compose View
Text("Hello world!")
// Android View
AndroidView(
factory = { context ->
// addViewしたい従来のView
TextView(context).apply {
text = "Hello AndroidView!"
}
}
)
}
}
}
}
Compose内で既存のViewを使いたい場合はAndroidView()を使います。
こちらのfactory内でaddViewしたいViewを返してあげるとCompose内に追加されます。
また、factoryの他にmodifierやupdateという引数も定義できて、こちらでレイアウトの修正や、
viewの状態や変数に合わせてviewを変えることも実装できます。
#おわりに
今回はJetpack Compose内に既存のAndroidのViewを使う方法を説明しました。
Jetpack Composeに移行したいもののこの部分はまだ既存のView使いたい問い時に便利だなと思いました。