Это ошибка, которую я обнаружил при работе над настоящим приложением, но я создал пустой проект, чтобы воспроизвести его.Детский класс EditText выглядит иначе, чем обычный EditText на Android 4
У меня есть следующий макет:
<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
s отличается по цвету, нормальный один имеет подчеркивание голубого цвета при фокусировке, обычай один имеет черное подчеркивание:
Почему этот и как я могу это предотвратить?
EDIT/UPDATE:
Google seems to have adressed this в библиотеку поддержки путем введения, среди прочего, класс AppCompatEditText.
Вау, у вас уже есть этот ответ? :) Огромное спасибо! – FWeigl
@Ascorbin: «Ого, у вас уже был подготовлен этот ответ?» - Ну, это половина цитаты, которая экономит на печатании. :-) Мне нужно в какой-то момент взглянуть на мой второй вариант, поскольку у меня есть [подкласс «EditText'» (https://github.com/commonsguy/cwac-richedit), который будет страдать от того же проблема. – CommonsWare