Интервал между сообщениями об ошибках не работает в стиле TextInputLayout Outlined - PullRequest
1 голос
/ 25 апреля 2020

Я пытаюсь реализовать форму, используя MaterialComponents TextInputLayout. Согласно документам , в нем должно быть место для сообщения об ошибке. Я включил сообщение об ошибке в свой макет xml, и оно также отображается в предварительном просмотре макета Android Studio, но не работает в приложении.

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/name_input_layout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:errorEnabled="true"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        android:hint="@string/hint_name">

        <com.google.android.material.textfield.TextInputEditText
            android:id="@+id/input_name"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textColor="@color/colorPrimaryText"
            android:singleLine="true" />

    </com.google.android.material.textfield.TextInputLayout>

Предварительный просмотр:

enter image description here

Что на самом деле происходит:

enter image description here

1 Ответ

0 голосов
/ 25 апреля 2020

Я исправил это, включив errorMessage сразу после его отключения, когда вход действителен.

    else {  // Condition finally met when error is valid
        signinEmailLayout.setErrorEnabled(false);
        signinEmailLayout.setErrorEnabled(true);
    }

Как и предлагается в комментариях @MRamzan, похоже, что это поведение по умолчанию. Так или иначе, в моем классе активности я установил errorEnabled в false, что заставило макет удалить пространство, предназначенное для сообщения об ошибке, когда ввод был действительным. Как только ввод снова стал недействительным, появилось сообщение об ошибке, так как я снова включил его, и, следовательно, там был нестабильный UX.

...