添加的 EditText 不是 TextInputEditText。请改为使用 class
EditText added is not a TextInputEditText. Please switch to using that class instead
我在 TextInputLayout
中使用 EditText
,但是在将支持库升级到 23.2.0 后,我在 logcat 中收到此警告,两者之间有什么区别一个普通的 EditText
和一个 TextInputEditText
?我似乎找不到它的任何文档。
它们本质上是一样的,但我认为 TextInputEditText
有更多的特性和可能的属性。我更改为 TextInputEditText
,一切正常,看起来和以前使用标准 EditText
时一样。
没有它的文档,但是 class 是一个常规的 EditText
,具有一个额外的功能:
Using this class allows us to display a hint in the IME when in 'extract' mode.
具体来说,它设置 EditorInfo.hintText
. You'll notice in the TextInputLayout
class 您可以指定提示及其外观,而不是作为子 EditText
小部件的一部分。
如果您需要这样做,您应该使用 TextInputEditText
以便它注意您在 TextInputLayout
中指定的提示信息。
我也想知道, gathered the documentation, but to the untrained eye it doesn't mean much. Here's what it's all about: "extract mode" 指的是 space 太小时显示的视图类型,例如 phone 上的风景。我正在使用带有 Google 键盘作为输入法编辑器 (IME) 的 Galaxy S4。
横向 UI 没有可见的 IME
基于焦点(在描述上),您可以看到 TextInputLayout
正在将提示推送到编辑器之外。这里没什么特别的,这就是 TextInputLayout
应该做的。
横向UI 正在编辑空名称字段
编辑名称您可以看到 IME 不会提示您正在编辑什么。
横向UI 正在编辑空描述字段
编辑说明您可以看到 IME 提示您正在编辑的内容。
布局 XML
两个字段的区别在于它们的类型 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>
我遇到了这个问题,刚刚在我的 xml 文件中删除了这一行:
android: fitsSystemWindows = "true"
然后错误消失了。
唯一的区别是,当您的设备处于横向模式时,TextInputEditText
会显示提示,EditText
不会。
我在 TextInputLayout
中使用 EditText
,但是在将支持库升级到 23.2.0 后,我在 logcat 中收到此警告,两者之间有什么区别一个普通的 EditText
和一个 TextInputEditText
?我似乎找不到它的任何文档。
它们本质上是一样的,但我认为 TextInputEditText
有更多的特性和可能的属性。我更改为 TextInputEditText
,一切正常,看起来和以前使用标准 EditText
时一样。
没有它的文档,但是 class 是一个常规的 EditText
,具有一个额外的功能:
Using this class allows us to display a hint in the IME when in 'extract' mode.
具体来说,它设置 EditorInfo.hintText
. You'll notice in the TextInputLayout
class 您可以指定提示及其外观,而不是作为子 EditText
小部件的一部分。
如果您需要这样做,您应该使用 TextInputEditText
以便它注意您在 TextInputLayout
中指定的提示信息。
我也想知道,
横向 UI 没有可见的 IME
基于焦点(在描述上),您可以看到 TextInputLayout
正在将提示推送到编辑器之外。这里没什么特别的,这就是 TextInputLayout
应该做的。
横向UI 正在编辑空名称字段
编辑名称您可以看到 IME 不会提示您正在编辑什么。
横向UI 正在编辑空描述字段
编辑说明您可以看到 IME 提示您正在编辑的内容。
布局 XML
两个字段的区别在于它们的类型 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>
我遇到了这个问题,刚刚在我的 xml 文件中删除了这一行:
android: fitsSystemWindows = "true"
然后错误消失了。
唯一的区别是,当您的设备处于横向模式时,TextInputEditText
会显示提示,EditText
不会。