导致TextInputLayout垂直占用太多空间
令人发疯的是,TextInputLayout高度的一半仅用于错误文本(在EditText
的水平线下方)。错误文本的字体大小仅为11dp。理想情况下,我想将错误文本顶部和底部的空间缩小到非常小的范围,如2dp
我已尝试过所有内容,但我只是设法将TextInputLayout的高度降低到70dp。
还有什么我可以做的吗?
布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.TextInputLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="@dimen/height_textinputlayout"
android:padding="0dp"
app:errorTextAppearance="@style/ErrorText">
<EditText
android:layout_width="match_parent"
android:layout_height="@dimen/height_edittext"
android:layout_marginBottom="0dp"
android:layout_marginEnd="22dp"
android:layout_marginStart="22dp"
android:inputType="textEmailAddress"
android:maxLines="1"
android:singleLine="true"/>
</android.support.design.widget.TextInputLayout>
错误样式:
<style name="ErrorText" parent="TextAppearance.AppCompat">
<item name="android:layout_margin">0dp</item>
<item name="android:padding">0dp</item>
<item name="android:textColor">@android:color/holo_red_dark</item>
<item name="android:textSize">@dimen/font_size_form_field_error</item>
<item name="android:gravity">top</item>
<item name="fontPath">fonts/Avalon-Book.ttf</item>
<item name="android:background">@android:color/holo_orange_dark</item>
</style>
答案 0 :(得分:0)
虽然这不能完全解决您的问题,但会有所帮助。我也一直在寻找答案,但是没有找到任何解决方案,我的hacky方式涉及启用和禁用TextInputLayout上的错误。它在某种程度上有帮助。
docker exec
您可以使用这两个功能来设置错误,并在需要时使用文本观察器清除错误。这不是很理想,也无法回答您的问题,但它是针对路人的,这可能帮助他们解决用例。
textwatcher代码,以防您需要
fun clearError(til:TextInputLayout,text:Editable?,lengthCheck:Int? = null){
if(text != null && text.isNotEmpty()){
if(lengthCheck == null) {
til.error = null
til.isErrorEnabled = false
} else if(text.length >= lengthCheck) {
til.error = null
til.isErrorEnabled = false
}
}
}
fun setErrorTil(til:TextInputLayout,error:String){
if(!til.isErrorEnabled) til.isErrorEnabled = true
til.error = error
}
使用您的edittext代替电子邮件。希望它可以帮助某人。 同样,所有示例都在kotlin中。