我在EditText
中使用TextInputLayout
,但在将支持库升级到23.2.0之后,我在logcat中收到此警告,常规EditText
和TextInputEditText
之间的区别是什么?我似乎无法找到任何文件。
我也想知道这一点,Daniel Wilson收集了文件,但对于未经训练的眼睛,这并不意味着什么。以下是它的全部内容:"extract mode"指的是当空间太小时显示的视图类型,例如手机上的风景。我正在使用带有谷歌键盘的Galaxy S4作为IME。
基于焦点(在描述上),您可以看到TextInputLayout
在操作中将提示推到编辑器之外。这里没什么特别的,这就是TextInputLayout
应该做的。
编辑名称可以看到IME没有提供您正在编辑的内容的提示。
编辑说明您可以看到IME为您提供了正在编辑的内容的提示。
两个领域之间的区别是他们的类型EditText
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
,具有一个额外的功能:
使用此类允许我们在“提取”模式下在TIME中显示提示。
具体来说它设置了EditorInfo.hintText
。您会注意到在TextInputLayout
类中,您可以指定提示及其外观,而不是作为子EditText
小部件的一部分。
如果你需要这样做,你应该使用TextInputEditText
,所以它会注意你在TextInputLayout
中指定的提示信息。
它们本质上是相同的,但我认为TextInputEditText
有更多的功能和可能的属性。我改为TextInputEditText
,一切正常,看起来像之前用标准的EditText
。
我有这个问题,只是在我的xml文件中删除了这一行:
android: fitsSystemWindows = "true"
并且错误消失了。