Jetpack Compose 显示错误的颜色

alf*_*tap 7 android android-jetpack-compose

还有其他人遇到过这个吗?正如这里的照片所示,我的表面背景是白色的,但在预览和应用程序中显示的是紫色。同样适用于文本视图,它们应该是黑色和灰色,但显示为紫色。

我的代码如下

@Composable
fun EditableSettingItem(setting: EditableSetting) {
Surface(color = Color(R.color.background),
        modifier = Modifier.fillMaxWidth().height(86.dp)) {

    Column (modifier = Modifier.fillMaxHeight()) {
        Text(text = setting.settingName,
            modifier = Modifier
                .padding(start = 19.dp, top = 14.dp)
                .wrapContentSize(),
            style = TextStyle(fontFamily = FontFamily(Font(R.font.quicksand_regular)),
                fontSize = 13.sp,
                color = Color(R.color.sub_text)))

        Row(modifier = Modifier
            .padding(start = 16.dp, end = 16.dp, top = 16.dp)
            .fillMaxWidth(),
            horizontalArrangement = Arrangement.SpaceBetween) {
            Text(text = setting.action,
                modifier = Modifier.wrapContentSize(),
                style = TextStyle(fontFamily = FontFamily(Font(R.font.quicksand_regular)),
                    fontSize = 15.sp,
                    color = Color(R.color.main_text)))

            Image(painter = painterResource(id = R.drawable.ic_chevron_right),
                contentDescription = null,
                alignment = Alignment.CenterEnd)

        }
    }
}
Run Code Online (Sandbox Code Playgroud)

}

Com*_*are 11

您正在使用Color(R.color.background)Color()获取颜色的十六进制值,而不是颜色资源的 ID。

相反,尝试一下colorResource(R.color.background)。它采用颜色资源 ID 并返回包装在对象中的基础颜色Color