Измените цвет подчеркивания в AutoCompleteTextView

#android #autocompletetextview

#Android #autocompletetextview

Вопрос:

Для моего AutoCompleteTextView установлено значение un-focusable, но я не хочу, чтобы он менял цвет подчеркивания с синего на серый. Есть ли способ переопределить его и изменить цвет подчеркивания обратно на исходный синий цвет, сохраняя при этом автокомплететекстовый вид не сфокусированным?

Ответ №1:

Это всего лишь вопрос создания и применения пользовательского стиля. Первый шаг — перейти к http://android-holo-colors.com / и сгенерируйте чертежи и стиль для автозаполнения. Откройте созданный архив и скопируйте все чертежи, которые содержат «edit_text» и «textfield» в имени файла, в свой проект.

Теперь вам нужно будет просмотреть все каталоги для рисования, зависящие от dpi, и перезаписать файлы с именами:

 apptheme_textfield_default_holo_light.9.png
  

с файлом из того же каталога с именем:

 apptheme_textfield_activated_holo_light.9.png
  

Теперь вам нужно создать пользовательский стиль. Для API 11 это будет выглядеть следующим образом:

   <style name="MyAutoCompleteTextView" parent="android:Widget.Holo.Light.AutoCompleteTextView">
      <item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
  </style>
  

Для более старых уровней API вам понадобится альтернативный стиль, который наследуется от android:Widget.AutoCompleteTextView .

Теперь вы просто должны иметь возможность применять этот стиль в своих макетах:

 <AutoCompleteTextView
    android:focusable="false"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    style="@style/MyAutoCompleteTextView"/>