4
2

More than 1 year has passed since last update.

独自のThemeを作るときの注意点

Posted at

色とか全体にRippleの指定とかしたい時にThemeを作るけどもComposableの順で指定したRippleが消えたので注意点。

@Composable
fun MyTheme(
    themeType: ThemeType,
    content: @Composable () -> Unit,
) {
    val color = themeType.colorPalette
    CompositionLocalProvider(
        localMyColors provides color,
        LocalRippleTheme provides MyRippleTheme
    ) {
        MaterialTheme {
            content()
        }
    }
}

こうするとMaterialThemeのなかでLocalRippleThemeを上書きしてしまい、せっかく指定したMyRippleThemeが効かなくなる

正しくはこうする

@Composable
fun MyTheme(
    themeType: ThemeType,
    content: @Composable () -> Unit,
) {
    val color = themeType.colorPalette
    MaterialTheme {
        CompositionLocalProvider(
            localMyColors provides color,
            LocalRippleTheme provides MyRippleTheme
        ) {
            content()
        }
    }
}
4
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
4
2