Android TextInputField Inflator Error

eim*_*mer 28 android android-design-library

尝试使用TextInputFieldAndroid 的新版本并想分享我的解决方案时发生了崩溃.

在android appcompat库中尝试新的TextInputField会导致我的应用程序崩溃.这是我的布局xml.

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/email"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="e-mail"
        android:inputType="textEmailAddress"
        android:singleLine="true"/>

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

android.view.InflateException: Binary XML file line #20: Error inflating class android.support.design.widget.TextInputLayout.
Run Code Online (Sandbox Code Playgroud)

SOLUTION:将hintTextAppearance属性添加到您的TextInputLayout,因此lead标记如下所示:

<android.support.design.widget.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    app:hintTextAppearance="@android:style/TextAppearance.Medium">
Run Code Online (Sandbox Code Playgroud)

Rac*_*hel 41

确保gradle文件中包含以下依赖项:

compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:design:22.2.0'
Run Code Online (Sandbox Code Playgroud)

工作范例:

<android.support.design.widget.TextInputLayout
    android:id="@+id/txtEmail_InpLyt"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textEmailAddress"
        android:ems="10"
        android:id="@+id/txtEmail"
        android:hint="Email Address"
        android:singleLine="true"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"/>
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

(hintTextAppearance不需要设置.)

更新:

如果您遇到提示文本没有出现在较新版本的Android(Marshmallow/Nougat)中的问题,请将库更新到版本22.2.1(请参阅TextInputLayout在用户关注之前不显示EditText提示).

compile 'com.android.support:appcompat-v7:22.2.1'
compile 'com.android.support:design:22.2.1'
Run Code Online (Sandbox Code Playgroud)


Phi*_*hil 24

这也发生在我身上,我提出了一个不需要更改App主题的解决方案,只是改变了TextInputLayout的主题:

<android.support.design.widget.TextInputLayout
    android:id="@+id/testingInputLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/Theme.AppCompat">

   <EditText
       android:id="@+id/testingEditText"
       android:layout_width="fill_parent"
       android:layout_height="wrap_content"
       android:hint="@string/testText"
       android:inputType="textEmailAddress" />

</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

如果您还没有,则需要添加appCompat库:

compile 'com.android.support:appcompat-v7:23.0.1'
Run Code Online (Sandbox Code Playgroud)


小智 7

在adroidx中对我有用的我有图书馆

 implementation 'com.android.support:appcompat-v7:28.0.0'
    //design widget
    implementation 'com.android.support:design:28.0.0'
Run Code Online (Sandbox Code Playgroud)

我改变

<android.support.design.widget.TextInputLayout
Run Code Online (Sandbox Code Playgroud)

对于

<com.google.android.material.textfield.TextInputLayout
Run Code Online (Sandbox Code Playgroud)