TextInputLayout содержит EditText, который, в свою очередь, получает вход от пользователя. С TextInputLayout, представленным в Библиотеке поддержки дизайна Android, мы должны установить ошибку в TextInputLayout, где находится EditText, а не сам EditText. При написании пользовательского интерфейса будет сфокусирован только на EditText, а не на весь TextInputLayout, который может привести к клавиатуре, покрывающей ошибку. В следующем уведомлении GIF пользователь должен сначала удалить клавиатуру, чтобы увидеть сообщение об ошибке. Это в сочетании с настройкой действий IME для перемещения по клавиатуре приводит к действительно запутывающим результатам.Текст ошибки в TextInputLayout покрыт клавиатурой
код макета 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>
Java устанавливая ошибку в TextInputLayout код:
uidTextInputLayout.setError("Incorrect cardnumber");
Как я могу убедиться, что сообщение об ошибке отображается без пользовательского действия чтобы увидеть это? Можно ли переместить фокус?
Думаю, вы должны подать отчет об ошибке [здесь] (https://code.google.com/p/android/issues/list). – natario
Просто сделал это сейчас @mvai https://code.google.com/p/android/issues/detail?id=178153&thanks=178153&ts=1435245051 – Franzaine
Я согласен с вами, хорошо поймать (и удачи). – natario