2016-05-12 7 views
0

У меня есть приложение, которое использует черный фон. Я разрабатывал и тестировал его на Lollipop, но minSDK - 19. Когда я использую устройство KitKat (или эмулятор), я сталкиваюсь с проблемой с белым текстом, который я вижу на своем устройстве Lollipop, - он черный и, следовательно, невидим.Проблемы с цветом KitKat

Я определяю цвет текста, как это:

<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 ?!

+0

http://stackoverflow.com/questions/26852108/how-do-you-set-the-title-color-for-the-new-toolbar – zgc7009

+0

@ zgc7009 Я вижу, как это относится к моему вопросу, но это не решает его. Или, по крайней мере, я не могу вздохнуть с ним. Если он где-то скрыт в этом потоке, не могли бы вы указать на такие манекены, как я? :) – Maverick283

+0

Возможно, вам нужно будет изучить тип темы, который у вас есть. Я думаю, вам нужно будет использовать какой-то Theme.AppCompat. *. Не то, чтобы я на это 100%, потому что я немного не возился со стилем, но я уверен, что для капитального ремонта шаблонов проектирования в Lollipop потребуется какой-то AppCompat. Эта ссылка может предоставить немного больше (опять же не уверен, что это решение, скорее предложение чего-то посмотреть) http://stackoverflow.com/questions/20653305/full-screen-theme-for-appcompat – zgc7009

ответ

0

Благодаря @ 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 родитель к моему пользовательскому стилю. Должен быть честным, я не совсем уверен, почему он влияет на цвет TextViews, если кто-либо знает, что не стесняйтесь редактировать или комментировать. Надеюсь, это поможет парным парням в будущем.

+1

Тема родителя AppCompat включает стили совместимости, позволяющие атрибутам работать в разных версиях :) Из этой ссылки http://android-developers.blogspot.com/2014/10/appcompat-v21-material-design-for-pre.html ' «Когда вы устанавливаете эти атрибуты, AppCompat автоматически распространяет свои значения на атрибуты фреймворка API 21 + .' – zgc7009