我在EditText
内部使用a TextInputLayout
,但是将支持库升级到23.2.0之后,我在logcat中收到此警告,常规EditText
和a有TextInputEditText
什么区别?我似乎找不到任何文档。
Answers:
我也想知道,丹尼尔·威尔逊(Daniel Wilson)收集了文档,但是对于未经培训的人来说,意义不大。这就是全部内容:“提取模式”是指当空间太小(例如手机的风景)时显示的视图类型。我正在将Galaxy S4和Google Keyboard用作输入法编辑器(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>
android:hint
属性应该TextInputEditText
代替TextInputLayout
。
TextInputEditText
是UI的实现细节。
没有文档,但是该类是常规的EditText
,具有一个额外的功能:
使用此类可让我们在“提取”模式下在IME中显示提示。
具体来说,它设置了EditorInfo.hintText
。您会在TextInputLayout
类中注意到,您可以指定提示及其外观,而不是作为子EditText
窗口小部件的一部分。
如果需要这样做,则应使用,TextInputEditText
以便它注意您在中指定的提示信息TextInputLayout
。
它们本质上是同一件事,但是我认为TextInputEditText
具有更多功能和可能的属性。我改成了TextInputEditText
,一切正常,看起来像以前的标准一样EditText
。
我遇到了这个问题,只是在xml文件中删除了这一行:
android: fitsSystemWindows = "true"
错误消失了。