如何让 Material 3 按钮在禁用状态下具有与启用状态下相同的颜色?

问题描述 投票:0回答:1

我想创建一个按钮,禁用时保留启用按钮的颜色(然后我将按钮内容从文本切换为圆形进度指示器)。但是我不知道如何“引用”默认颜色。我的想法是使用

ButtonDefaults
并覆盖一些值,如下所示:

@Preview
@Composable
private fun ButtonSandbox() {
    Button(
        enabled = false,
        modifier = Modifier.fillMaxWidth(),
        onClick = {},
        colors = ButtonDefaults.buttonColors(
            containerColor = , // how to reference default for enabled button here?
            contentColor = , // how to reference default for enabled button here?
            disabledContainerColor = , // how to reference default for enabled button here?
            disabledContentColor = // how to reference default for enabled button here?
        )
    ) {
        CircularProgressIndicator(
            modifier = Modifier.size(ButtonDefaults.IconSize)
        )
    }
}

那么,如何引用已启用按钮的默认颜色?

android android-jetpack-compose material-design
1个回答
0
投票

Button 的默认颜色是材质主题原色,内容是 OnPrimary 颜色。

你可以这样做:


@Preview
@Composable
private fun ButtonSandbox() {
    Button(
        enabled = false,
        modifier = Modifier.fillMaxWidth(),
        onClick = {},
        colors = ButtonDefaults.buttonColors(
            containerColor = MaterialTheme.colorScheme.primary ,
            contentColor = MaterialTheme.colorScheme.onPrimary,
            disabledContainerColor = MaterialTheme.colorScheme.primary,
            disabledContentColor = MaterialTheme.colorScheme.onPrimary,
        )
    ) {
        CircularProgressIndicator(
            modifier = Modifier.size(ButtonDefaults.IconSize)
        )
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.