LoginSignup
1
2

More than 3 years have passed since last update.

既存のレイアウトの一部にJetpack Composeを組み込む その2

Posted at

はじめに

先日こちらの記事にて、既存のレイアウトの中に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使いたい問い時に便利だなと思いました。

参考

Compose をアプリに導入する

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2