这是我在开发实际应用程序时发现的一个“错误”,但我创建了一个空项目来重现它。
我有以下布局:
类
我希望
为什么会出现这种情况,我该如何避免?
编辑/更新:
Google似乎已经通过引入AppCompatEditText类等方式在支持库中解决了这个问题。(链接)
我有以下布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:id="@+id/root"
android:orientation="vertical"
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.example.test.testapp.MyEditText
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
类
MyEditText
的外观如下:public class MyEditText extends EditText {
public MyEditText(Context context){
super(context);
}
public MyEditText(Context context, AttributeSet attrs){
super(context, attrs);
}
public MyEditText(Context context, AttributeSet attrs, int defStyle){
super(context, attrs, defStyle);
}
}
我的styles.xml
文件除了主题之外是空的
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
</style>
</resources>
我希望
MyEditText
看起来像普通的EditText
,在Android 5.0上它是这样的,但在Android 2.3.7、Android 4.1.3或Android 4.4.4上不是。在这些Android版本中,EditText
的颜色不同,普通的有一个青色的下划线,而自定义的有一个黑色的下划线:为什么会出现这种情况,我该如何避免?
编辑/更新:
Google似乎已经通过引入AppCompatEditText类等方式在支持库中解决了这个问题。(链接)
EditText
的子类(https://github.com/commonsguy/cwac-richedit),它也会遇到同样的问题。 - CommonsWare