切换到AndroidX后,膨胀TextInputLayout.Outlined时出错

时间:2019-01-14 13:08:53

标签: android androidx

切换到AndroidX并启用android.support.design.widget.TextInputLayout后夸大类style/Widget.MaterialComponents.TextInputLayout.OutlinedBox的错误

你好朋友, 今天,我将项目切换到Androidx(需要我的新lib),并且遇到关于TextInputLayout的错误。

请注意,当我删除OulinedBox样式时,它可以完美编译,但是对于该项目,我绝对需要它。

有人知道一种使OulinedBox TextInputLayout样式与AndroidX一起工作的方法吗?

非常感谢您的帮助和时间。

<android.support.design.widget.TextInputLayout
    style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="60dp"
    android:layout_marginTop="20dp"
    app:boxStrokeColor="@color/gradient_begin_purple">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/login"
        android:textSize="20dp" />
</android.support.design.widget.TextInputLayout>

4 个答案:

答案 0 :(得分:2)

我遇到了这个问题。我尝试了stackoverflow给出的所有方法,但不幸的是找不到任何解决方案。最后,我发现了我错过的要点。 (我假设您将材料设计依赖项放入了build.gradle中)

1)您的应用程序中的它们必须类似于以下内容(在values和values-21文件夹中)

<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">

2)在您的manifest.xml

中将活动主题设置为AppTheme
<activity
            android:name=".ui.activities.SplashActivity"
            android:screenOrientation="portrait"
            android:theme="@style/AppTheme"

答案 1 :(得分:1)

添加implementation "com.google.android.material:material:1.1.0-alpha02" 代替支持设计库。 替换上面的内容后,它对我来说是完美的。

答案 2 :(得分:0)

我认为您会收到错误消息,因为您将支持设计库与材料组件库混合在一起。

android.support.design.widget.TextInputLayout替换为com.google.android.material.textfield.TextInputLayout

答案 3 :(得分:0)

检查drawable-v21中缺少的Drawable资源,这就是为什么当您从23进行较低版本调试时会崩溃的原因

See Missing resource Show Error