调用TextInputLayout

时间:2018-02-02 15:57:14

标签: android xml android-layout android-textinputlayout

我有一个带有TextInputLayout的布局文件:

<android.support.design.widget.TextInputLayout
    android:id="@+id/fullname"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:errorEnabled="true"
    app:errorTextAppearance="@style/Error">

    <EditText
        android:id="@+id/fullnameEditText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Full Name"
        android:inputType="textEmailAddress"
        android:padding="26dp"/>
</android.support.design.widget.TextInputLayout>

当我在TextInputLayout上调用setError()方法时,提示会转到顶部,就好像TextInputLayout会有焦点一样。

我想在设置错误时保持不变的提示。看起来应该是这样的:

design

如何构建此布局的任何想法?

2 个答案:

答案 0 :(得分:1)

您可以使用其他方式执行此操作,您可以在setError()

上致电OnCreate()
 mTextInputLayout = findViewById(R.id.fullname);
 mTextInputLayout.setError("Enter Your Full Name");

当您想要显示错误时执行此操作

mTextInputLayout.setErrorEnabled(true);

这将解决您提示的问题

   if (mTextInputLayout.isErrorEnabled()){
         mTextInputLayout.setHintEnabled(false);
      }else {
         mTextInputLayout.setHintEnabled(true);
      }

答案 1 :(得分:0)

您需要实施自己的MyTextInputLayoutTextInputLayout

在该类中,您必须控制何时显示或不显示提示,覆盖显示错误时显示提示的自定义行为。

来自SO的另一个答案的好起点:https://stackoverflow.com/a/44521653/2174489