【发布时间】:2019-10-22 00:24:20
【问题描述】:
我想在我的应用程序中使用TextInputEditText 和TextInputLayout,但它不适用于Theme.AppCompat.Light.NoActionBar。但是如果我将它设置为Theme.MaterialComponents.Light.NoActionBar,它将毫无问题地工作,但这会破坏我在应用程序中的所有样式。
在 XML 中的用法:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/nameLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/reg_edit_text_style"
app:errorEnabled="true"
android:hint="@string/name">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/nameEt"
android:layout_width="match_parent"
android:nextFocusDown="@id/lastNameEt"
android:inputType="text"
style="@style/reg_edit_text_inner_style"/>
</com.google.android.material.textfield.TextInputLayout>
在build.gradle:
implementation 'com.google.android.material:material:1.1.0-alpha07'
implementation 'androidx.appcompat:appcompat:1.0.2'
错误:
Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:240)
at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:215)
at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:143)
【问题讨论】:
-
你试过我的答案了吗?
-
桥主题工作
-
如果你想继续使用当前的 appcompat 主题,你也可以添加这些属性,因为你会遇到主题强制错误..
标签: android android-layout android-textinputlayout