2016-09-17 2 views
0

Я использую библиотеку поддержки Android, какую версию я не знаю, потому что я не знаю, как ее проверить. Проблема, с которой я столкнулся, что значение атрибута android: textColor игнорируется. Если я определяю стиль и назначаю его textAppearance of EditText, цвет textColor игнорируется.Почему textColor в android: textAppearance игнорируется?

Итак, у меня есть следующий макет:

<LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <!-- This text should be red, but it is black --> 
    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Text color via TextAppearance" 
     android:textAppearance="@style/TextAppearance.EditText" /> 

    <!-- The hint should be green, but it is grey --> 
    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Hint color via TextAppearance" 
     android:textAppearance="@style/TextAppearance.EditText" /> 

    <!-- Text is red as set in android:textColor --> 
    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="Text color via android:textColor" 
     android:textColor="#880000" 
     android:textSize="18sp" /> 

    <!-- Hint is green as set in android:textColorHint --> 
    <EditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:hint="Hint color via android:textColorHint" 
     android:textColorHint="#008800" 
     android:textSize="18sp" /> 

</LinearLayout> 

Я определил следующий стиль:

<!-- Text Appearance --> 
<style name="TextAppearance.EditText" parent=""> 
    <item name="android:textColor">#880000</item>  <!-- this color is ignored --> 
    <item name="android:textColorHint">#008800</item> <!-- this color is ignored --> 
    <item name="android:textSize">18sp</item> 
</style> 

Является ли это ошибка в библиотеке поддержки или я что-то пропустил?

ответ

0

Использование

style="@style/TextAppearance.EditText"

вместо

android:textAppearance="@style/TextAppearance.EditText"

Он должен работать!

+0

Что такое рассуждение за этим? Что такое android: textAppearance используется для этого? –

+0

следуйте по ссылке [this] (https://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/) и перейдите в раздел «Внешний вид текста». вы можете получить некоторое представление об использовании его должным образом. :) –

+0

Точно как я его использую. КСТАТИ. Если вы не прочитали вопрос, он в основном вращается вокруг того, почему атрибут textColor игнорируется? –

0

Где-то вдоль линии подбирается и применяется неправильное/значение по умолчанию для textColor. Вы можете установить android:textColor, который вы определяете в android:textAppearance, который будет использоваться установкой android:textColor="@null" в вашем XML для EditText. Это должно работать и для android:textColorHint.

(Это отражает accepted answer к этому post.)

Смежные вопросы