添加的EditText不是TextInputEditText。 请切换到使用该类

我在TextInputLayout使用EditText ,但是在将支持库升级到23.2.0之后,我在logcat中得到了这个警告,常规EditTextTextInputEditText什么区别? 我似乎无法find任何文件。

我也想知道这一点, 丹尼尔·威尔逊收集的文件,但对未经训练的眼睛,这并没有多大意义。 以下是它的全部内容: “提取模式”指的是当空间太小时显示的视图types,例如手机上的风景。 我使用Galaxy S4作为IME的Google键盘。

没有可见的IME的风景UI

基于焦点(在说明上),您可以看到TextInputLayout正在执行将编辑器外部的提示。 这里没什么特别的,这是TextInputLayout应该做的。

没有可见的IME的风景UI

景观用户界面编辑空名称字段

编辑名称,你可以看到,IME并没有给你一个你正在编辑的提示。

景观用户界面编辑空名称字段

横向UI编辑空描述字段

编辑描述,你可以看到IME给你一个你正在编辑的东西的提示。

横向UI编辑空描述字段

布局XML

两个字段之间的区别是它们的typesEditText VS TextInputEditText 。 这里最重要的是TextInputLayout具有android:hint而不是包装的EditText,这是在TextInputEditText的几行Java代码有很大不同的情况下。

名称字段

 <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> 

没有文档,但是这个类是一个常规的EditText带有一个额外的function:

使用这个类允许我们在“提取”模式下在IME中显示一个提示。

具体来说,它设置EditorInfo.hintText 。 您会注意到,在TextInputLayout类中,您可以指定提示及其外观,而不是作为子EditText小部件的一部分。

如果您需要这样做,您应该使用TextInputEditText以便注意您在TextInputLayout指定的提示信息。

他们本质上是相同的东西,但我认为TextInputEditText有更多的function和可能的属性。 我改成了TextInputEditText ,所有的工作和看起来像以前用标准的EditText

这个问题是旧的,但是我有这个问题,只是删除我的XML文件中的这一行:android:fitsSystemWindows =“true”,错误消失。