我有一个数据类,其中一个变量的类型为Color.我有逻辑来存储不同类型的 colored颜色 以在UI中显示,即

data class SubTitleModel(
    val text: String,
    val textColor: Color = Color.Black
) 

当我从一个活动转到另一个活动时,我必须使用@Parcelize,即

import android.os.Parcelable
import kotlinx.parcelize.Parcelize

@Parcelize
data class SubTitleModel(
    val text: String,
    val textColor: Color = Color.Black
) : Parcelable

它让我在Color上出错

Type is not directly supported by 'Parcelize'. Annotate the parameter type with '@RawValue' if you want it to be serialized using 'writeValue()'

那么这意味着什么呢?如何解决这个问题?请提供详细的解释和适当的参考.谢谢

推荐答案

另一种 Select 是传递Int或Long,而不是传递Compose Color,如

data class SubTitleModel(
    val text: String,
    val textColor: Int = (0xFF000000).toInt()
)

然后在您的用户界面中

@Preview
@Composable
private fun Test() {
    val modelList = listOf(
        SubTitleModel(
            text = "SomeText"
        ),
        SubTitleModel(
            text = "SomeText2",
            textColor = Color.Red.toArgb()
        ),
        SubTitleModel(
            text = "SomeText3",
            textColor = Color.Green.toArgb()
        )
    )

    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(20.dp)
            .border(2.dp, Color.Red)
    ) {
        modelList.forEach { model: SubTitleModel ->
            Text(text = model.text, color = Color(model.textColor))
        }
    }
}

Android相关问答推荐

编写视觉转型

Android Bundle getSerializable(String?):'可序列化?&# 39、被抛弃了在Java中被弃用

图像在Android Studio中显示,但不在设备中显示

如何在停止和销毁时更改函数中Firebase实时数据库的子项的值我试过了,但这不起作用.请使用Kotlin

如何将我的Android应用程序(Kotlin)中的图像分享给其他应用程序?

Clean MVVM 架构中的 API 响应处理

Color.Transparent 和 Color.Unspecified 之间的区别

@Immutable 对数据类有什么好处?

我的自定义小吃店不适合我的全宽屏幕尺寸

运行设备选项卡在 Android Studio 中自动打开

在 compose android 中创建一个圆形按钮和居中文本

如何在 Jetpack Compose 中设置行宽等于 TextField 的宽度?

如何在jetpack compose中创建水印文字效果

Android 12 通过包管理器中断 APK 安装?

如何在 Compose 中更改高程 colored颜色 ?

单击登录按钮后从应用程序中退出

Android - 水平(从右到左)圆形背景 colored颜色 过渡

Jetpack Compose Material3 - switch 标签

线圈单元测试 - 如何做到这一点?

Android Studio (Kotlin):无法启动活动