我的应用使用Theme.Holo.Light.DarkActionBar
作为父主题。
当我使用Android 3.2平板电脑模拟器时,几乎无法看到EditText形状。看起来它试图在白色上画白色。见到这里:
当我在Android 4.0平板电脑模拟器上使用它时,EditText形状看起来很好。您可以在EditText底部看到深灰色线条。如果您查看上面的图像,您只会在与浅灰色背景水印相交的地方几乎看不到白线。
这是我在布局中的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被绘制错误的颜色?我没有覆盖绘图代码或背景drawable。
答案 0 :(得分:5)
其他答案实际上并不能解决我的问题,而且我从来没有弄清楚究竟是什么导致了这个问题。然而,这就是我解决它的方法:我的解决方法是从Ice Cream Sandwich复制.9.pngs和EditText小部件的样式,并硬编码到我的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>
然后我在styles.xml中创建了一个样式来设置:
<item name="android:background">@drawable/edit_text_holo_light</item>
然后我从android sdk复制.9.png文件并将它们放在res / drawable- *中。文件名列在上面的xml中。
答案 1 :(得分:1)
如果您使用如下主题,您可以拥有一个操作栏并仍然可以看到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”。
答案 2 :(得分:0)
我弄清楚了我的问题。通过在manifest.xml文件中的应用程序元素android:theme="@android:style/Theme"
中设置主题。
<application
android:label="@string/app_name"
android:icon="@drawable/logo"
android:vmSafeMode="false"
android:theme="@android:style/Theme">
试试这个。