TextInputLayout包含一个EditText,后者又接收来自用户的输入.使用Android设计支持库中引入的TextInputLayout,我们应该将错误设置为持有EditText而不是EditText本身的TextInputLayout.编写UI时,将只关注EditText而不是整个TextInputLayout,这可能导致键盘覆盖错误.在以下GIF通知中,用户必须先删除键盘才能看到错误消息.这与设置IME动作以使用键盘继续前进相结合会导致真正令人困惑的结果.
布局xml代码:
<android.support.design.widget.TextInputLayout
android:id="@+id/uid_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="true"
android:layout_marginTop="8dp">
<EditText
android:id="@+id/uid_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:hint="Cardnumber"
android:imeOptions="actionDone"/>
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
Java代码将错误设置为TextInputLayout:
uidTextInputLayout.setError("Incorrect cardnumber");
Run Code Online (Sandbox Code Playgroud)
如何在用户没有看到错误消息的情况下确保错误消息可见?有可能移动焦点吗?
android android-layout android-design-library androiddesignsupport android-textinputlayout
android ×1