Ich verwende ein EditText
Inside-A TextInputLayout
, aber nach dem Upgrade der Support-Bibliothek auf 23.2.0 wird im Logcat die folgende Warnung angezeigt: Was ist der Unterschied zwischen einem regulären EditText
und einem TextInputEditText
? Ich kann anscheinend keine Dokumentation dafür finden.
android
android-layout
android-edittext
android-support-library
android-textinputlayout
Silvia H.
quelle
quelle
Antworten:
Ich habe mich auch gefragt, Daniel Wilson hat die Dokumentation gesammelt, aber für das ungeübte Auge bedeutet das nicht viel. Hier ist, worum es geht: "Extraktionsmodus" bezieht sich auf die Art der Ansicht, die angezeigt wird, wenn der Speicherplatz zu klein ist, z. B. Querformat auf einem Telefon. Ich verwende Galaxy S4 mit Google Keyboard als Eingabemethoden-Editor (IME).
Querformat-Benutzeroberfläche ohne sichtbaren IME
Anhand des Fokus (auf Beschreibung) können Sie
TextInputLayout
in Aktion sehen, wie der Hinweis außerhalb des Editors verschoben wird. Hier ist nichts Besonderes, dasTextInputLayout
soll man tun.Bearbeiten der Landschafts-Benutzeroberfläche leeres Namensfeld
Wenn Sie den Namen bearbeiten, sehen Sie, dass der IME Ihnen keinen Hinweis darauf gibt, was Sie bearbeiten.
Bearbeitung der Querformat-Benutzeroberfläche leeres Beschreibungsfeld
Wenn Sie die Beschreibung bearbeiten, sehen Sie, dass der IME Ihnen einen Hinweis darauf gibt, was Sie bearbeiten.
Layout-XMLs
Der Unterschied zwischen den beiden Feldern ist ihre Art
EditText
VSTextInputEditText
. Das Wichtigste dabei ist, dassTextInputLayout
derandroid:hint
und nicht der umbrochene EditText vorhanden ist. Dies ist der Fall, wennTextInputEditText
die wenigen Zeilen Java-Code einen großen Unterschied machen.Namensfeld
Beschreibungsfeld
quelle
android:hint
EigenschaftTextInputEditText
statt gehenTextInputLayout
.TextInputEditText
ist ein Implementierungsdetail der Benutzeroberfläche.Es gibt keine Dokumentation dafür, aber die Klasse ist eine reguläre Klasse
EditText
mit einer einzigen zusätzlichen Funktion:Insbesondere setzt es die
EditorInfo.hintText
. Sie werden feststellen, dass Sie in derTextInputLayout
Klasse den Hinweis und sein Erscheinungsbild angeben können und nicht als Teil des untergeordnetenEditText
Widgets.Wenn Sie dies tun müssen, sollten Sie ein verwenden
TextInputEditText
, damit die Hinweisinformationen berücksichtigt werden, die Sie im Feld angegeben habenTextInputLayout
.quelle
Sie sind im Wesentlichen dasselbe, aber ich denke, das
TextInputEditText
hat mehr Funktionen und möglicherweise Attribute. Ich wechselte zuTextInputEditText
und alles funktionierte und sah aus wie vorher mit dem StandardEditText
.quelle
Der einzige Unterschied besteht darin, dass Ihr Gerät im Querformat
TextInputEditText
den Hinweis anzeigt undEditText
nicht.quelle
Ich hatte dieses Problem und habe gerade diese Zeile in meiner XML-Datei gelöscht:
und der Fehler verschwand.
quelle