我在EditText
内使用了TextInputLayout
,但在将支持库升级到23.2.0之后,我在logcat中收到了这个警告,它们之间的区别是什么常规EditText
和TextInputEditText
?我似乎无法找到任何文档。
答案 0 :(得分:102)
我也想知道这一点,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>
答案 1 :(得分:29)
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.
Specifically it sets the EditorInfo.hintText
. You'll notice in the TextInputLayout
class you can specify the hint and it's appearance rather than as part of the child EditText
widget.
If you need to do that, you should use a TextInputEditText
so it pays attention to the hint info you specified in the TextInputLayout
.
答案 2 :(得分:4)
它们基本上是相同的,但我认为TextInputEditText
具有更多功能和可能的属性。我改为TextInputEditText
,一切正常,看起来和标准EditText
一样。
答案 3 :(得分:0)
唯一的区别是,当设备处于横向模式时,TextInputEditText
将显示提示,EditText
将不显示提示。
答案 4 :(得分:-3)
我遇到了这个问题,只是在我的xml文件中删除了这一行:
android: fitsSystemWindows = "true"
并且错误消失了。