Android EditText сливается с фоном - PullRequest
8 голосов
/ 28 марта 2012

Мое приложение использует Theme.Holo.Light.DarkActionBar в качестве родительской темы.

Когда я использую свой эмулятор планшета Android 3.2, форму EditText почти невозможно увидеть. Похоже, он пытается нарисовать белое на белом. Видно здесь:

enter image description here

Когда я использую его на моем эмуляторе планшета Android 4.0, форма EditText выглядит просто отлично. Вы можете увидеть темно-серую линию вдоль нижней части EditText. Если вы посмотрите на изображение выше, вы просто увидите белую линию там же, где она пересекает светло-серый фон водяного знака.

enter image description here

Вот мой EditText в макете:

<EditText
    android:id="@+id/fieldName"
    style="@style/PlayerDetails.Field"
    android:capitalize="words" />

А вот и стиль:

<style name="PlayerDetails.Field">
    <item name="android:layout_weight">0.65</item>
    <item name="android:paddingLeft">10dp</item>
    <item name="android:layout_width">0dp</item>
    <item name="android:layout_height">fill_parent</item>
    <item name="android:layout_marginLeft">10dp</item>
</style>

Почему мой EditText рисуется не того цвета? Я не перезаписываю код рисования или фон для рисования.

Ответы [ 3 ]

5 голосов
/ 05 июня 2012

Другие ответы на самом деле не были решением моей проблемы, и я так и не понял, что ДЕЙСТВИТЕЛЬНО вызвало проблему.Однако, вот как я решил это: мой обходной путь - скопировать .9.pngs и стиль для виджета EditText из Ice Cream Sandwich и жестко запрограммировать его в моем приложении для Honeycomb и Ice Cream Sandwich.

РЕДАКТИРОВАТЬ:

Я создал файл с именем res / drawable-nodpi / edit_text_holo_light.xml со следующим:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_multiline="true" android:state_window_focused="false" android:state_enabled="true"  android:drawable="@drawable/textfield_multiline_default_holo_light" />
    <item android:state_multiline="true" android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_multiline_disabled_holo_light" />
    <item android:state_multiline="true" android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_multiline_activated_holo_light" />
    <item android:state_multiline="true" android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_multiline_focused_holo_light" />
    <item android:state_multiline="true" android:state_enabled="true" android:drawable="@drawable/textfield_multiline_default_holo_light" />
    <item android:state_multiline="true" android:state_focused="true" android:drawable="@drawable/textfield_multiline_disabled_focused_holo_light" />
    <item android:state_multiline="true" android:drawable="@drawable/textfield_multiline_disabled_holo_light" />

    <item android:state_window_focused="false" android:state_enabled="true" android:drawable="@drawable/textfield_default_holo_light" />
    <item android:state_window_focused="false" android:state_enabled="false" android:drawable="@drawable/textfield_disabled_holo_light" />
    <item android:state_enabled="true" android:state_focused="true" android:drawable="@drawable/textfield_activated_holo_light" />
    <iten android:state_enabled="true" android:state_activated="true" android:drawable="@drawable/textfield_focused_holo_light" />
    <item android:state_enabled="true" android:drawable="@drawable/textfield_default_holo_light" />
    <item android:state_focused="true" android:drawable="@drawable/textfield_disabled_focused_holo_light" />
    <item android:drawable="@drawable/textfield_disabled_holo_light" />
</selector>

Затем я создал стиль в своих стилях.XML для установки:

<item name="android:background">@drawable/edit_text_holo_light</item>

Затем я скопировал файлы .9.png из Android SDK и поместил их в res / drawable- *.Имена файлов перечислены в приведенном выше xml.

1 голос
/ 05 июня 2012

Вы можете иметь панель действий и по-прежнему видеть EditText светло-серый фон водяного знака, если вы используете темы, как показано ниже:

AndroidManifest.xml

<activity
  android:name=".ClassName"
  android:label="ClassName"
  android:theme="@style/MyTheme" >

styles.xml

<resources>
  <style name="MyTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
  </style>
  <style name="MyActionBar" parent="android:Widget.Holo.ActionBar">
    <item name="android:background">@color/black</item>
  </style>
</resources>

Это работает для темы "Android: Theme.Holo.Light", но не для темы "Android: Theme.Holo".

0 голосов
/ 03 апреля 2012

Я выясняю мою проблему.Установив тему в элементе приложения android:theme="@android:style/Theme" в файле manifest.xml.

<application 

android:label="@string/app_name" 

android:icon="@drawable/logo" 

android:vmSafeMode="false" 

android:theme="@android:style/Theme">

Попробуйте это.

...