我目前正在将我的应用程序转换到Jetpack Compose,并且在某些情况下,我面临一些问题来适应我当前的颜色调色板。
我在xml文件中有一些TextInputLayout
,它们从我的主题中的SECUNDARY颜色继承突出显示文本颜色。
<style name="Theme.MyApp" parent="Theme.MaterialComponents.Light.NoActionBar">
...
<item name="colorPrimary">@color/blue</item>
<item name="colorPrimaryVariant">@color/blue</item>
<item name="colorSecondary">@color/red</item>
<item name="colorSecondaryVariant">@color/red</item>
...
</style>
我的问题是,我在Compose中使用的TextField
从MaterialTheme
的PRIMARY颜色继承了高亮文本颜色。
MaterialTheme(
colors = Colors(
primary = Color.Blue,
...
secondary = Color.Red,
...
),
content = content,
typography = MaterialTheme.typography,
shapes = MaterialTheme.shapes,
) {
TextField(...)
}
我在 TextField
上覆盖了 colors
参数,但似乎没有影响到这个颜色。
是否有方法在不更改 MaterialTheme
中的 colors
的情况下覆盖 compose 上的高亮颜色?我想避免这种情况,因为它可能会对使用相同主题的其他屏幕造成问题。