這是我在實際應用程序中發現的'錯誤',但是我創建了一個空白項目來重現它。EditText的子類與Android上的EditText看起來不一樣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 IN的顏色不同,正常的一個重點時,青色下劃線,自定義一個有一個黑色下劃線:
這是爲什麼發生,我怎樣才能防止它?
編輯/ UPDATE:
谷歌seems to have adressed this在引進,除其他外,一個AppCompatEditText類支持庫。
哇,你已經準備這個答案? :)謝謝一堆! – FWeigl 2015-02-06 14:54:53
@Ascorbin:「哇,你有這個答案已經準備好了嗎?」 - 這是報價的一半,這可以節省打字費用。 :-)我需要看我的第二個選擇自己在某些時候,因爲我有(https://github.com/commonsguy/cwac-richedit)的'EditText'一個子類],將來自同一患問題。 – CommonsWare 2015-02-06 14:55:45