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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了添加的EditText不是TextInputEditText。请切换到使用该类相关的知识,希望对你有一定的参考价值。

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

答案

我也想知道这一点,Daniel Wilson收集了文件,但对于未经训练的眼睛,这并不意味着什么。以下是它的全部内容:"extract mode"指的是当空间太小时显示的视图类型,例如手机上的风景。我正在使用带有谷歌键盘的Galaxy S4作为IME。

Landscape UI without visible IME

基于焦点(在描述上),您可以看到TextInputLayout在操作中将提示推到编辑器之外。这里没什么特别的,这就是TextInputLayout应该做的。

Landscape UI without visible IME

Landscape UI editing empty Name field

编辑名称可以看到IME没有提供您正在编辑的内容的提示。

Landscape UI editing empty Name field

Landscape UI editing empty Description field

编辑说明您可以看到IME为您提供了正在编辑的内容的提示。

Landscape UI editing empty Description field

Layout XMLs

两个领域之间的区别是他们的类型EditText VS TextInputEditText。这里重要的是TextInputLayoutandroid: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"

并且错误消失了。

以上是关于添加的EditText不是TextInputEditText。请切换到使用该类的主要内容,如果未能解决你的问题,请参考以下文章

文本应该从editText的开头出现,而不是结尾

动态添加 TableRow 并从 edittext、viewtext 中检索/设置

需要为EditText长触摸而不是ActionMode自定义弹出窗口

自定义EditText动态在EditText中添加图片

自动将冒号添加到 Edittext

如何在 Android TextView 或 EditText 中右对齐文本?