アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

テキストとrippleのテーマを上書きする【Jetpack Compose(Desktop)】

バージョン情報

plugins {
    kotlin("jvm") version "1.4.30"
    id("org.jetbrains.compose") version "0.3.0-build150"
}

本文

PopupMenuを作成するのに黒くしたいなということで行いました。
f:id:matsudamper:20210209083154p:plain:w400
CompositionLocalProvider を使用して上書きします。

CompositionLocalProvider(
    LocalTextStyle provides TextStyle(color = Color.Black),
    LocalRippleTheme provides object : RippleTheme {
        @Composable
        override fun defaultColor(): Color {
            return RippleTheme.defaultRippleColor(
                Color.DarkGray,
                MaterialTheme.colors.isLight
            )
        }

        @Composable
        override fun rippleAlpha(): RippleAlpha {
            return RippleTheme.defaultRippleAlpha(
                contentColor = LocalContentColor.current,
                lightTheme = MaterialTheme.colors.isLight
            )
        }

    },
) {
    ProvideTextStyle(value = MaterialTheme.typography.body1, content = {
        // Compose this
        Text("")
        Column {
            Text("")
        }
    })
}