Jetpack Compose显示的颜色有误

7

有其他人也遇到过这个问题吗?如此处的照片所示,我的Surface背景是白色的,但在预览和应用程序中显示为紫色。文本视图也是同样的情况,它们应该是黑色和灰色的颜色,但是显示为紫色。

我的代码如下:

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

        }
    }
}

}


请编辑您的问题并提供 [mcve]。如果您能够这样做,我可以为您的问题提供更好的答案,并且您的问题将受益更多的人。 - CommonsWare
1个回答

10
您正在使用Color(R.color.background)Color()需要颜色的十六进制值,而不是颜色资源的ID。
相反,请尝试使用colorResource(R.color.background)。 它接受颜色资源ID并返回包装在Color对象中的底层颜色。

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