Android Compose 更改点击颜色

9

我在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)
            )
        }

当它被点击时,颜色为灰色。我希望将其更改为自定义颜色,但似乎无法弄清楚如何做。

1个回答

18

您可以使用指示参数来提供它:

clickable(
    interactionSource = remember { MutableInteractionSource() },
    indication = rememberRipple(color = Color.Red),
) { }
如果您想要更改一组视图,您可以在 LocalIndication 中提供 CompositionLocalProvider
CompositionLocalProvider(
    LocalIndication provides rememberRipple(color = Color.Red)
) {
    SomeView()
)

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

@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,
        ) 
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接