Android TextInputField发生错误

试图为Android使用新的TextInputField发生崩溃,并希望分享我的解决scheme。

尝试在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> 

我得到的错误:

 android.view.InflateException: Binary XML file line #20: Error inflating class android.support.design.widget.TextInputLayout. 

解决scheme:将hintTextAppearance属性添加到您的TextInputLayout ,所以领导标记看起来像这样:

 <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" app:hintTextAppearance="@android:style/TextAppearance.Medium"> 

Solutions Collecting From Web of "Android TextInputField发生错误"

确保你的gradle文件中有以下依赖项:

 compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.android.support:design:22.2.0' 

工作示例:

 <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> 

(设置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' 

这也发生在我身上,我提出了一个解决scheme,不需要更改应用程序主题,而只是改变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> 

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

 compile 'com.android.support:appcompat-v7:23.0.1' 

充值包含TextInputLayout XML时遇到同样的问题。 问题是通过在我的应用程序上设置正确的风格来解决的。 就像这里所说: androiddevise支持库

我有以下问题

 Caused by: android.view.InflateException: Binary XML file line #38: Error inflating class android.support.design.widget.TextInputLayout 

我的style.xml是

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="android:Theme.Material"> <!-- Customize your theme here. --> </style> </resources> 

正如它在devise支持库的这篇文章中所说的那样

请注意,由于devise库依赖于Support v4和AppCompat支持库,所以添加devise库依赖关系时将自动包含这些库。

所以不需要在gradle文件中添加以下行

 compile 'com.android.support:appcompat-v7:22.2.0' 

我发现链接解释说,devise支持库是AppCompat的一部分,它需要AppCompat主题基地工作。 所以我修改我的style.xml

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> </resources> 

它的工作。

使用以下内容:

 View view = LayoutInflator.from(getActivity()).inflate(R.layout.your_layout_file,parent,false); 

你可能已经joincompile 'com.android.support:appcompat-v7:22.2.0'但你需要添加compile 'com.android.support:design:22.2.0'

你可以试试这个依赖关系:

 compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.android.support:design:22.2.0' 

在你的gradle文件中。