KitKat 中的 Textinputlayout 膨胀异常

Posted

技术标签:

【中文标题】KitKat 中的 Textinputlayout 膨胀异常【英文标题】:Textinputlayout inflate exception in KitKat 【发布时间】:2017-08-05 23:49:11 【问题描述】:

这是我的以下代码:

  <android.support.design.widget.TextInputLayout 
                    android:layout_
                    android:layout_
                    android:layout_marginTop="@dimen/margin_5dp"
                    android:layout_weight="1"
                    android:gravity="left"

                    android:textColor="@color/text_input_layout"
                    android:textColorHint="@color/text_input_layout"
                    android:theme="@style/Theme.AppCompat"
        app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout">

                    <EditText
                        android:layout_
                        android:layout_
                        android:layout_gravity="bottom"
                        android:layout_marginTop="@dimen/margin_5dp"
                        android:background="@drawable/textview_background"

                        android:imeOptions="flagNoExtractUi"
                        android:inputType="textNoSuggestions"
                        android:maxLength="50"
                        android:paddingLeft="3dp"
                        android:textColor="#FFFFFF"
                        android:textColorHint="@color/black"
                       android:textCursorDrawable="@drawable/color_cursor"
                        android:textSize="@dimen/text_size">

                        <requestFocus />
                    </EditText>
                </android.support.design.widget.TextInputLayout>

已为活动定义的样式。

<style name="MyTheme" parent="android:Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/AppActionBar</item>
    <item name="android:textSize">@dimen/text_size</item>
    <item name="android:textColor">@color/black</item>
</style>

清单代码:

<activity
        android:name=".MyActivity"
        android:configChanges="keyboardHidden|orientation|screenSize"
        android:label="@string/MyActivity"
        android:screenOrientation="landscape"
        android:windowSoftInputMode="adjustPan|adjustResize"
        android:theme="@style/MyTheme" />

我尝试了很多来自 *** 的示例,但在 Android Os KITKAT(API 17) 上不起作用。应用的最低目标是 17。 我只在 Kitkat 上收到以下运行时错误。

android.view.InflateException:二进制 XML 文件第 138 行:膨胀类 android.support.design.widget.TextInputLayout 时出错

如果有人能帮忙提前谢谢。

【问题讨论】:

第 138 行里面有什么,这个错误意味着他不能在这个版本的运行时膨胀视图所以告诉我这行里面有什么 > 第 138 行是代码的第一行。即 尝试删除这一行 app:hintTextAppearance="@style/TextAppearance.App.TextInputLayout" 不,还是同样的问题。可能是因为低于lollypop(5.0)的android os版本不支持布局。 【参考方案1】:

如果您不想面对旧版本的麻烦,请确保您不使用任何矢量图像并以旧方式引用它android:src,改用app:srcCompat

使用 appcompat 视图代替旧视图。

使用android.support.v7.widget.AppCompatEditText 而不是EditText

将您的支持库更新到最新版本。

更新

确保您的 ActivityName 扩展 AppCompatActivity 而不是 ActivityFragmentActivity(顺便说一下,在转换为 AppCompat 视图的运行时使用 AppCompatActivity 时) .

【讨论】:

问题不在于 EditText,而在于 TextInputLayout 在 Lollypop 及以上版本上运行良好。 @MinaFawzy 。可能这条线有问题android:theme="@style/Theme.AppCompat" 另外我没有使用任何矢量图 你用的是activity还是AppCompatActivity 这是我使用的 public class CustomerActivity extends BaseActivitypublic class BaseActivity extends FragmentActivity 我根本不会更改此代码 改用 Theme.AppCompat.Light

以上是关于KitKat 中的 Textinputlayout 膨胀异常的主要内容,如果未能解决你的问题,请参考以下文章

Android - 如何更改 TextInputLayout(材料组件)中的文本颜色?

TextInputLayout的基本使用

启用 TextInputLayout = false 后,如何使 TextInputEditText 中的文本变灰?

TextInputLayout中的多行提示

使用 TextInputLayout 时更改 EditText 提示颜色

3分钟学会TextInputLayout