Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android TextInputField充气器错误_Android_Android Design Library - Fatal编程技术网

Android TextInputField充气器错误

Android TextInputField充气器错误,android,android-design-library,Android,Android Design Library,在尝试为Android使用新的TextInputField时发生故障,并希望共享我的解决方案 在android appcompat库中尝试新的TextInputField会使我的应用程序崩溃。这是我的布局xml <android.support.design.widget.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <

在尝试为Android使用新的
TextInputField
时发生故障,并希望共享我的解决方案

在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>
解决方案: 将
hintTextAppearance
属性添加到您的
TextInputLayout
,使lead标签如下所示:

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

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

当膨胀包含
TextInputLayout
的XML时,我遇到了同样的问题。 通过在我的应用程序上设置正确的样式,问题得到了解决。就像这里说的:

我有以下问题

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>
我发现这个链接应该解释一下,设计支持库是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>


这也发生在我身上,我想出了一个解决方案,不需要更改应用程序主题,只需要更改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>
使用以下命令:

View view = LayoutInflator.from(getActivity()).inflate(R.layout.your_layout_file,parent,false);
你本可以加进去的
编译'com.android.support:appcompat-v7:22.2.0'
但您需要添加
编译'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文件中。

我对Android Studio 3.0.1也有同样的问题

只需将以下行添加到gradle.properties(项目属性)

android.enableapt2=false


对我来说,工作从EditText更改为TextInputItemText

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

    <android.support.design.widget.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/date_raffle"/>

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

确保LayoutFlater是从AppCompative活动创建的

而不是

inflater = (LayoutInflater)ctx.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
使用:

inflater=LayoutInflater.from();

没有一个解决方案适合我。我正在使用

compile 'com.android.support:appcompat-v7:28.0.0'
compile 'com.android.support:design:28.0.0'
尝试了所有的解决方案。我的应用程序在sdk较低的设备中运行良好。但在较新(大于sdk 26)的设备中崩溃。但经过两天的努力终于找到了解决办法

我的布局编辑器显示了

无法实例化以下类:
-android.support.design.widget.TextInputLayout

但它没有给我足够的信息来处理。直到我在布局编辑器中查看其他错误。在渲染问题下,我发现

Couldn't resolve resource @string/path_password_strike_through

在研究了这个渲染问题之后,我终于找到了解决方案。您只需添加

app:passwordToggleDrawable="@string/string_name"
在TextInputLayout xml文件中

                <android.support.design.widget.TextInputLayout
                    android:id="@+id/login_input_layout_password"
                    android:layout_width="match_parent"
                    app:passwordToggleDrawable="@drawable/ic_lock_outline_grey600_24dp"
                    android:layout_height="wrap_content"
                    android:layout_marginLeft="30dp"
                    android:layout_marginRight="30dp"
                    android:layout_marginTop="10dp"
                    android:backgroundTint="@color/colorAccent"
                    app:boxStrokeColor="#555"
                    android:textColorHint="@color/colorPrimary">

                    <EditText
                        android:id="@+id/login_input_password"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        />

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

只是想澄清一下,Android Studio 3.*现在改为

implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
(如果在添加时它变成红色,则接受Android Studio想要建议的版本)

这需要在内部

 dependencies {}
build.gradle(模块:app)
的一节,看起来像这样

dependencies {
    ...
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
}

然后在adroidx中点击“立即同步”

,它对我有效 我有图书馆

 implementation 'com.android.support:appcompat-v7:28.0.0'
    //design widget
    implementation 'com.android.support:design:28.0.0'
我改变

<android.support.design.widget.TextInputLayout

使用实现'com.google.android.material:material:1.1.0'您所要做的就是像这样使用您的XML标记:最后我实现了这一点……根据库本身的最新更改,将库从

<android.support.design.widget.TextInputLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/txt_input"
        android:layout_margin="@dimen/activity_horizontal_margin"
        app:layout_constraintTop_toBottomOf="@+id/edt_first_name"
        app:layout_constraintStart_toEndOf="@+id/guideline"
        app:hintEnabled="false">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Floating Hint Disabled" />

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



不清楚您链接的问题的哪一部分是“设置正确的样式”。你能用一个简单的例子来说明你的意思吗,比如一行代码/配置?(无论如何,总结一个链接是最好的做法,以防其目标发生变化:)-1它可能会起作用,但如果添加parent=“android:Theme.Material”则使用支持库有什么用?您必须将api更改为21@pierreThis可以工作,但我真的很惊讶,为了让TextInputLayout正常工作,您必须添加另一个库。似乎做得很差。compile'com.android.support:appcompat-v7:25.0.1'compile'com.android.support:design:25.0.1'}@GilSnovsky我已经更新了我的库,但我的一些应用程序用户(android api级别23)你仍然会遇到由android.view.InflateException:Binary XML文件行#17:Binary XML文件行#2:error Expling class android.support.design.widget.TextInputLayout
引起的令人沮丧的错误,但是你可能需要:构建->清理项目,然后重新构建/运行。你的解决方案成功了,谢谢#更新:更改布局主题,其中定义了TextInputField。例子:(在我的例子中,我在activity_main.xml中使用了TextInputField,所以它会是这样的:-->AppTheme应该是Theme.AppCompat或DecedentPerfect的子项。伙计们,在公元前一年的这个时候这是正确的答案。它不断崩溃的原因是公元前一年的支持库从android更改为AndroidX,所以你可以将支持设计依赖项更改为:implementation'com.google.android.material:material:1.3.0-alpha02'现在支持androidx
 dependencies {}
dependencies {
    ...
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
}
 implementation 'com.android.support:appcompat-v7:28.0.0'
    //design widget
    implementation 'com.android.support:design:28.0.0'
<android.support.design.widget.TextInputLayout
<com.google.android.material.textfield.TextInputLayout
<android.support.design.widget.TextInputLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/txt_input"
        android:layout_margin="@dimen/activity_horizontal_margin"
        app:layout_constraintTop_toBottomOf="@+id/edt_first_name"
        app:layout_constraintStart_toEndOf="@+id/guideline"
        app:hintEnabled="false">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Floating Hint Disabled" />

    </android.support.design.widget.TextInputLayout> 
<com.google.android.material.textfield.TextInputLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/txt_input"
        android:layout_marginTop="@dimen/activity_horizontal_margin"
        app:layout_constraintTop_toBottomOf="@+id/edt_first_name"
        app:layout_constraintStart_toEndOf="@+id/guideline"
        app:hintEnabled="false">

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Floating Hint Disabled" />

    </com.google.android.material.textfield.TextInputLayout>