8

我正在将TextInputLayoutAppCompatEditText一起使用,该AppCompatEditText具有基于自定义 xml 形状的背景。每当我设置一些错误时,错误行都会从布局的开头开始。有什么方法可以填充该错误行。

在此处输入图像描述

4

3 回答 3

6

您可以使用以下方法引用错误 TextView:

TextView textView = (TextView) inputLayout.findViewById(android.support.design.R.id
            .textinput_error);

然后您可以使用它的布局参数。

于 2017-05-31T13:01:13.317 回答
1

我努力解决这个问题,这对我有用:

删除我的错误文本视图的父级的填充

使用这个解决方案我可以找到错误文本视图(因为我需要向它添加一个图标)但无法摆脱填充,所以经过几次尝试后我意识到 TextInputLayout 有 2 个孩子所以从第二个孩子中删除填充成功了,为了确定,我也从第一个中删除了它

使用 Kotlin 扩展我想出了一个干净的解决方案

/**
 * TextInputLayout
 */
fun TextInputLayout.removePadding() {
    for (i in 0 until this.childCount) {
        this.getChildAt(i).setPadding(0)
    }
}

您也可以使用相同的逻辑在 java 中执行此操作。

在此处输入图像描述

于 2021-05-13T20:26:12.847 回答
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"
    />

于 2017-03-05T18:12:02.827 回答