我有一个带有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会有焦点一样。
我想在设置错误时保持不变的提示。看起来应该是这样的:
如何构建此布局的任何想法?
答案 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)
您需要实施自己的MyTextInputLayout
类TextInputLayout
。
在该类中,您必须控制何时显示或不显示提示,覆盖显示错误时显示提示的自定义行为。
来自SO的另一个答案的好起点:https://stackoverflow.com/a/44521653/2174489