2014-02-10 2 views
6

Как говорится в этом вопросе: при тестировании приложения на устройствах под управлением Android 4.3+ (также протестированных на 4.4) цвет подсказок (для EditText) становится белым, и независимо от того, какой цвет я ему устанавливаю, он остается белым. Поскольку фон EditText белый, подсказки не видны невооруженным глазом!Android 4.3+, android: textColorHint не работает, цвет подсказки всегда белый

Я googled и googled и не могу найти кого-либо, имеющего ту же проблему. Приложение было построено с использованием android:minSdkVersion="8" и android:targetSdkVersion="15". EditText выглядит следующим образом:

<EditText 
      android:id="@+id/editText3" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@drawable/my_background" 
      android:ems="10" 
      android:textColorHint="@color/BlueViolet" 
      android:hint="@string/my_hint" 
      android:inputType="number" 
      android:tag="21_0" /> 

В первом он использует по умолчанию android:textColorHint, и я подумал, что, может быть, Android 4.3+ изменилось по умолчанию белым по какой-то причине. Но, похоже, это не так, поскольку любой цвет, который я установил, всегда белый.

Я знаю, что fill_parent устарел, но приложение было создано довольно давно, но теперь оно невозможно использовать из-за исчезновения намеков. Любая помощь приветствуется! Благодаря!

РЕДАКТИРОВАТЬ: «Ошибка» возникает при использовании String-ресурса для подсказки. Это работает: android:hint="Hello world" в то время как это не android:hint="@string/my_hint"

ответ

1

кажется так Android 4.3+ это уже не возможно сделать строковых ресурсов следующим образом (не уверен, что если он когда-либо имел в виду, чтобы работать таким образом, хотя):

<string name="my_hint"><font size="13" fgcolor="#ffbbbbbb">Hello world</font></string> 

Если вы это сделаете, они окажутся белыми. Таким образом, вы застряли с созданием строкового-ресурс таким образом:

<string name="my_hint">Hello world</string> 

И затем использовать свойства на TextView/EditText редактировать цвет намека. Чтобы изменить размер, кажется, это все-таки можно сделать:

<string name="my_hint"><small><small>Hello world</small></small></string> 

Я узнал об этом, прочитав комментарий этого ответа: https://stackoverflow.com/a/11577658/2422321, Эдвард Фальк

9

Ибо кто борется с такой же проблемой;

Если вы использовали свой EditText в

android.support.design.widget.TextInputLayout 

вы должны поставить

android:textColorHint="@color/BlueViolet" 

в TextInputLayout

<android.support.design.widget.TextInputLayout 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:textColorHint="@android:color/white"> 

       <AutoCompleteTextView 
        android:id="@id/etextEmail" 
        android:layout_width="match_parent" 
        android:layout_height="wrap_content" 
        android:hint="@string/prompt_card" 
        android:inputType="textEmailAddress" 
        android:maxLines="1" 
        android:singleLine="true" 
        android:textColor="@android:color/white"/> 

      </android.support.design.widget.TextInputLayout> 
Смежные вопросы