Edittext setError方法没有在Android 6.0中显示文本,但在android 5.0中完美运行。我尝试了很多解决方案,但没有得到解决方案,我尝试了Android 6 EditText.setError not working correctly的所有解决方案,那么如何解决这个问题呢?
这是我的xml:
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/toolbar_create_page"
android:fillViewport="false">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="180dp"
android:id="@+id/ivPageBanner"
android:src="@drawable/bg_timeline"
android:scaleType="fitXY" />
<ImageView
android:layout_width="80dp"
android:layout_height="80dp"
android:id="@+id/ivPageDp"
android:layout_alignParentBottom="false"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="140dp"
android:layout_marginLeft="15dp"
android:src="@drawable/flagwithcamera" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/etPageName"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_below="@+id/ivPageDp"
android:layout_marginTop="20dp"
android:hint="Page name"
style="@style/EditTextTheme"
android:theme="@style/EditTextTheme"
android:textCursorDrawable="@drawable/black_cursor"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dp"
android:textColorHint="@color/hint_foreground_material_light" />
</RelativeLayout>
</ScrollView>
以下是Edittext的样式:
<style name="EditTextTheme" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@color/transparent</item>
<item name="android:textColorHint">@color/transparent</item>
<item name="colorAccent">@color/colorPrimary</item>
<item name="colorControlNormal">@color/colorPrimary</item>
<item name="colorControlActivated">@color/colorPrimary</item>
</style>
这是我的Colors.xml:
<color name="colorPrimary">#64100b</color>
<color name="transparent">#fc000000</color>
答案 0 :(得分:4)
我得到了解决方案。刚刚从我的Edittext中删除了它:
android:theme="@style/EditTextTheme"
原因在setError的文本下面加下划线。
好的,但这些下划线来自哪里?
android:theme
是View的一个属性,当您将样式设置为android:theme
时,该样式将被ContextThemeWrapper包含,并且在通胀视图中具有上下文主题。
这意味着,如果您将android:theme
属性设置为包含android:background
项的样式,如
<item name="android:background">@color/red</item>
此主题所有者的每个子视图都将具有绿色背景。
"Widget.AppCompat.EditText"
是一种样式,并引用?attr/editTextBackground
作为"android:background"
。在v21 / values-21.xml文件@drawable/abc_edit_text_material
中定义为editTextBackground
。
答案 1 :(得分:1)
我认为,它确实显示但它有点被切断。尝试使用浮动标签&amp;将Error设置为TextInputLayout引用。如果您仍然面临问题,请告诉我