I’m using an
EditText inside a
TextInputLayout, but after upgrading the support library to 23.2.0, I get this warning in the logcat, What’s the difference between a regular
EditText and a
TextInputEditText? I can’t seem to find any documentation for it.
I was wondering this too, Daniel Wilson gathered the documentation, but to the untrained eye it doesn’t mean much. Here’s what it’s all about: “extract mode” is referring to the type of view that’s shown when the space is too small, for example landscape on a phone. I’m using Galaxy S4 with Google Keyboard as IME.
Landscape UI without visible IME
Based on the focus (on Description) you can see
TextInputLayout in action pushing the hint outside the editor. Nothing special here, this is what
TextInputLayout is supposed to do.
Landscape UI editing empty Name field
Editing the Name you can see that the IME doesn’t give you a hint of what you’re editing.
Landscape UI editing empty Description field
Editing the Description you can see that the IME gives you a hint of what you’re editing.
The difference between the two fields is their type
TextInputEditText. The important thing here is that
TextInputLayout has the
android:hint and not the wrapped EditText, this is the case when
TextInputEditText‘s few lines of Java code makes a big difference.
<android.support.design.widget.TextInputLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Item Name" > <EditText android:id="@+id/name" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="Item Description" > <android.support.design.widget.TextInputEditText android:id="@+id/description" android:layout_width="fill_parent" android:layout_height="wrap_content" android:inputType="textMultiLine" android:minLines="4" android:scrollbars="vertical" /> </android.support.design.widget.TextInputLayout>
There is no documentation for it, but the class is a regular
EditText with a single extra feature:
Using this class allows us to display a hint in the IME when in ‘extract’ mode.
If you need to do that, you should use a
TextInputEditText so it pays attention to the hint info you specified in the
They are essentially the same thing, but I think the
TextInputEditText has more features and possibly attributes. I changed to the
TextInputEditText and everything worked and looked as it did before with the standard
The only difference is that when your device is in landscape mode,
TextInputEditText will show the hint,
I had this problem and just deleted this line in my xml file:
android: fitsSystemWindows = "true"
and the error disappeared.