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