我正在使用 TextInputLayout 与 AppCompatEditText ,其中 AppCompatEditText 具有基于自定义xml形状的背景。每当我设置一些错误时,错误行从布局的开始开始。有没有办法给该错误行填充。
答案 0 :(得分:6)
您可以使用以下方法引用错误TextView:
TextView textView = (TextView) inputLayout.findViewById(android.support.design.R.id
.textinput_error);
然后你可以使用它的布局参数。
答案 1 :(得分:1)
我努力解决这个问题,这对我有用:
删除我的错误文本视图的父级的填充
使用 this solution 我可以找到错误 textview(因为我需要向它添加一个图标)但无法摆脱填充,所以经过几次尝试后我意识到 TextInputLayout 有 2 个孩子所以删除第二个孩子的填充物起到了作用 可以肯定的是,我也从第一个中删除了它
使用 Kotlin 扩展我想出了一个干净的解决方案
/**
* TextInputLayout
*/
fun TextInputLayout.removePadding() {
for (i in 0 until this.childCount) {
this.getChildAt(i).setPadding(0)
}
}
您也可以使用相同的逻辑在 Java 中执行此操作。
答案 2 :(得分:0)
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:id="@+id/tx_in_username"
android:errorEnabled="true"
android:layout_marginLeft="@dimen/margin_LEFT_RIGHT"
android:layout_marginRight="@dimen/margin_LEFT_RIGHT"
android:layout_height="wrap_content">
<EditText
android:layout_width="match_parent"
android:layout_marginTop="10dp"
android:layout_height="36sp"
android:hint="Username"
/>