小编Fra*_*ine的帖子

TextInputLayout中的错误文本由键盘覆盖

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

35
推荐指数
2
解决办法
5801
查看次数