我想创建一个Button,它在禁用时保持启用按钮的 colored颜色 (然后将按钮内容从文本切换为圆形进度指示器).然而,我不知道如何"引用"默认 colored颜色 .我的 idea 是使用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)
        )
    }
}

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

推荐答案

按钮的默认 colored颜色 是material 主题主色,内容是OnPrimary colored颜色 .

你可以这样做:


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

Android相关问答推荐

listOf(listOf(字符串))在lazyArchitect(lazyStream)中合成

如何使禁用状态下的material 3按钮与启用状态下的 colored颜色 相同?

安卓Gradle看不到dagger 柄

如何在Android Studio中将我的Java-库&库设置为Kotlin库

Composable不会以LocalConext.Current作为活动呈现

如何使用react native下载android中/data/data/[应用程序包名称文件夹]/files中的文件

使用 Gadle kotlin 为多模块 Android 代码库设置 jacoco

Android Studio Relay插件(版本0.3.07)错误

如何在Android Studio中禁用文件中的Github用户名引用?

同样的参数值下,为什么requiredSizeIn不等于requiredWidthIn + requiredHeightIn?

Android Jetpack Compose全宽度抽屉优化

错误:无法安装应用程序:INSTALL_PARSE_FAILED_MANIFEST_MALFORMED (React-Native-Android-Studio)

如何删除 Jetpack Compose 中按钮的左边框?

如何仅使用您的 Android 应用程序定位平板电脑?

在 Jetpack Compose 中单击时更改表面项目的背景 colored颜色

LazyColumn 单选中的状态提升. Jetpack compose

Compose Accompaniist Pager 中的 TabRow/Tab 重组问题

组合 - 重新组合图像

预览必须是顶级声明或具有默认构造函数的顶级类

如何优化 JetPack Compose 列表性能?