EditText 在特定设备上黑底黑字
EditText black on black on a certain device
我有一个非常奇怪的问题,在我测试我的应用程序的每台设备上,edittext 的行为都符合您的预期,文本突出显示并且在白色背景上是黑色的。
特别是在 Lenovo Yoga 平板电脑上,当编辑文本获得焦点时,文本将变为黑色并与背景融为一体。
这里的布局是:
<RelativeLayout
android:id="@+id/ip_layout"
android:layout_below="@id/display_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip">
<LinearLayout
android:layout_marginBottom="10dip"
android:background="#8A8A8A"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="1dp"
android:layout_width="match_parent" />
<EditText
android:layout_marginTop="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:hint="@string/Hostname"
android:singleLine="true"
android:imeOptions="actionNext"
android:background="@android:color/transparent"
android:id="@+id/host_address"
android:maxLength="50" />
</RelativeLayout>
您必须创建自己的九个补丁图像并将其用作 EditText 的背景,否则 Edittext 的行为将随着 android 的设备和版本而改变。
如果您想为 edittext 背景创建更多效果,例如按下、聚焦和默认状态,那么您需要为 edittext 的背景图像创建一个选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@android:drawable/Epressed"/>
<item
android:state_focused="true"
android:drawable="@drawable/Efocused"/>
<item
android:drawable="@android:drawable/Edefault"/>
</selector>
如果是特定设备上的问题,可能是由于设备的自定义主题。最近的 Android 设备需要支持 Holo 主题,您可以使用以下方式在清单中明确请求该主题:
<style name="AppTheme" parent="android:Theme.Holo" />
我有一个非常奇怪的问题,在我测试我的应用程序的每台设备上,edittext 的行为都符合您的预期,文本突出显示并且在白色背景上是黑色的。
特别是在 Lenovo Yoga 平板电脑上,当编辑文本获得焦点时,文本将变为黑色并与背景融为一体。
这里的布局是:
<RelativeLayout
android:id="@+id/ip_layout"
android:layout_below="@id/display_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="10dip"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip">
<LinearLayout
android:layout_marginBottom="10dip"
android:background="#8A8A8A"
android:layout_height="wrap_content"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingTop="1dp"
android:layout_width="match_parent" />
<EditText
android:layout_marginTop="10dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:hint="@string/Hostname"
android:singleLine="true"
android:imeOptions="actionNext"
android:background="@android:color/transparent"
android:id="@+id/host_address"
android:maxLength="50" />
</RelativeLayout>
您必须创建自己的九个补丁图像并将其用作 EditText 的背景,否则 Edittext 的行为将随着 android 的设备和版本而改变。
如果您想为 edittext 背景创建更多效果,例如按下、聚焦和默认状态,那么您需要为 edittext 的背景图像创建一个选择器:
<?xml version="1.0" encoding="utf-8"?>
<selector
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@android:drawable/Epressed"/>
<item
android:state_focused="true"
android:drawable="@drawable/Efocused"/>
<item
android:drawable="@android:drawable/Edefault"/>
</selector>
如果是特定设备上的问题,可能是由于设备的自定义主题。最近的 Android 设备需要支持 Holo 主题,您可以使用以下方式在清单中明确请求该主题:
<style name="AppTheme" parent="android:Theme.Holo" />