Android Compose 更改点击颜色

and*_*oid 9 android android-jetpack-compose

我有一个基本的撰写行。

        Row(
            modifier = Modifier
                .fillMaxWidth()
                .background(MaterialTheme.colors.background)
                .clickable { click.invoke() }
        ) {
            Text(
                text = stringResource(id = item.first),
                textAlign = TextAlign.Start,
                color = MaterialTheme.colors.onPrimary,
                modifier = Modifier.padding(16.dp)
            )
        }
Run Code Online (Sandbox Code Playgroud)

单击时颜色为灰色。我想将其更改为自定义颜色,但我似乎不知道如何更改。

Phi*_*hov 18

您可以为其提供指示参数:

clickable(
    interactionSource = remember { MutableInteractionSource() },
    indication = rememberRipple(color = Color.Red),
) { }
Run Code Online (Sandbox Code Playgroud)

如果您想更改一组视图,您可以在CompositionLocalProvider以下位置提供LocalIndication

CompositionLocalProvider(
    LocalIndication provides rememberRipple(color = Color.Red)
) {
    SomeView()
)
Run Code Online (Sandbox Code Playgroud)

或者您可以将其嵌入到您的主题中以应用于整个应用程序:

@Composable
fun AppTheme(
    darkTheme: Boolean = isSystemInDarkTheme(),
    content: @Composable () -> Unit
) {
    val colors = if (darkTheme) {
        DarkThemeColors
    } else {
        LightThemeColors
    }
    MaterialTheme(
        colors = colors,
        typography = typography,
        shapes = shapes,
    ) {
        CompositionLocalProvider(
            LocalIndication provides rememberRipple(color = Color.Red),
            content = content,
        ) 
    }
}
Run Code Online (Sandbox Code Playgroud)