TextInputLayout contiene un EditText che a sua volta riceve l'input dall'utente. Con TextInputLayout introdotto con la libreria di supporto di Android Design, dovremmo impostare l'errore su TextInputLayout tenendo premuto EditText anziché EditText stesso. Quando si scrive l'interfaccia utente si concentrerà solo su EditText e non sull'intero TextInputLayout che può portare alla tastiera a coprire l'errore. Nel seguente avviso GIF, l'utente deve rimuovere prima la tastiera per visualizzare il messaggio di errore. Questo in combinazione con l'impostazione di azioni IME per passare all'utilizzo della tastiera porta a risultati davvero confusi.Il testo di errore in TextInputLayout è coperto dalla tastiera
codice di layout 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>
codice Java impostando l'errore al TextInputLayout:
uidTextInputLayout.setError("Incorrect cardnumber");
Come posso essere sicuro che il messaggio di errore è visibile senza che l'utente recitazione per vederlo? È possibile spostare la messa a fuoco?
Penso che dovresti presentare una segnalazione di bug [qui] (https://code.google.com/p/android/issues/list). – natario
L'ho appena fatto ora @mvai https://code.google.com/p/android/issues/detail?id=178153&thanks=178153&ts=1435245051 – Franzaine
Sono d'accordo con te, buona cattura (e buona fortuna). – natario