KitKat 颜色问题

KitKat color problems

我有一个使用黑色背景的应用程序。我一直在 Lollipop 上开发和测试它,但 minSDK 是 19。当我使用 KitKat 设备(或模拟器)时,我 运行 遇到了一个问题,我在 Lollipop 设备上看到的白色文本是黑色的因此不可见。

我这样定义文字颜色:

<TextView
    android:id="@+id/list_header_date"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginLeft="6dp"
    android:text="27.02.2016"
    android:textColor="@color/text_primary"
    android:textSize="16dp"/>

然后,在(全部)我的 styles.xml 中,我定义了以下主题:

 <style name="AppTheme.NoActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/text_primary</item>
    <item name="android:background">@color/colorPrimary</item>
   </style>

在colors.xml中,text_primary是这样定义的:

<color name="text_primary">#FFFFFF</color>

再一次,在 Lollipop 上我可以看到纯白色的文本,但在 KitKat 上它看起来是黑色的。我哪里做错了?在我看来,由于 TextView 文本颜色被明确定义为 text_primary 它应该适用于所有 SDK 版本?!

感谢@zgc7009,这个问题很快就解决了:

正如他所建议的,Lollipop 中设计模式的重大改革需要某种 AppCompat。基于此,幸运的是,../values-v19/styles.xml 文件的以下添加使得文本在 KitKat 中再次显示为白色:

 <style name="AppTheme.NoActionBar" parent="Theme.AppCompat.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="android:textColorPrimary">@color/text_primary</item>
</style>

请注意我是如何将 AppCompat parent 添加到我的自定义样式中的。 老实说,我不确定为什么它会影响 TextView 的颜色,如果有人知道,请随时编辑或发表评论。希望这对以后的几个人有帮助。