TextInputLayout错误文本填充

时间:2016-01-21 07:24:25

标签: android material-design android-appcompat android-textinputlayout

我正在使用 TextInputLayout AppCompatEditText ,其中 AppCompatEditText 具有基于自定义xml形状的背景。每当我设置一些错误时,错误行从布局的开始开始。有没有办法给该错误行填充。

enter image description here

3 个答案:

答案 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 中执行此操作。

enter image description here

答案 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"
    />