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 的颜色,如果有人知道,请随时编辑或发表评论。希望这对以后的几个人有帮助。
我有一个使用黑色背景的应用程序。我一直在 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 的颜色,如果有人知道,请随时编辑或发表评论。希望这对以后的几个人有帮助。