Open LeoAndo opened 1 year ago
既存Viewの内部で使用しているMaterial スタイルの実装がviewとcomposeでかなり異なる。(例えば使っているColor定義が違うなど。) 今回の例で言えば、BottomNavigationBarがそうだった! これは Material 3でも同じことが起きるはず
なのでBridge ThemeのMdcTheme
を削除しComposeに完全移行する際は、Compose側のデフォルト値を採用したいので、それが可能かチーム内で相談する必要がある。なので、(Compose側のデフォルト値を書き換えてまで、既存ViewにMaterial デザインを寄せたいのであれば引き続きBridge Themeを使うべき)
今回は試しにBottomNavigationで比較したいと思う。
bottomNavigationStyle
スタイルをデフォルトで使用していてmaterial color値がcomposeと違う!(?attr/colorSurfaceを使ってた)https://github.com/material-components/material-components-android/blob/master/lib/java/com/google/android/material/bottomnavigation/BottomNavigationView.java#L103 https://github.com/search?q=repo%3Amaterial-components%2Fmaterial-components-android%20Widget.MaterialComponents.BottomNavigationView&type=code
<item name="bottomNavigationStyle">@style/Widget.MaterialComponents.BottomNavigationView</item>
primaryVariant: (Lightテーマならprimaryカラー, darkならsurface)
結論
マイグレーションの流れ
refs
https://developer.android.com/codelabs/jetpack-compose-migration?hl=ja#1 https://developer.android.com/jetpack/compose/migrate/strategy?hl=ja#removing-fragments https://developer.android.com/jetpack/compose/designsystems/views-to-compose?hl=ja