Android 此组件上的样式要求您的应用程序主题为theme.MaterialComponents(或子代)以显示Badgedrawable错误
打开应用程序时发生此错误 我向底部导航项添加了一个新功能Badgdrawable 这是我的.xml文件,它包含导航Android 此组件上的样式要求您的应用程序主题为theme.MaterialComponents(或子代)以显示Badgedrawable错误,android,material-components-android,badge,Android,Material Components Android,Badge,打开应用程序时发生此错误 我向底部导航项添加了一个新功能Badgdrawable 这是我的.xml文件,它包含导航 <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/navigation" android:layout_width="match_parent" android:layout_height=&qu
<com.google.android.material.bottomnavigation.BottomNavigationView
android:id="@+id/navigation"
android:layout_width="match_parent"
android:layout_height="43dp"
android:layout_gravity="bottom"
android:soundEffectsEnabled="true"
android:theme="@style/Platform.MaterialComponents"
app:itemRippleColor="@color/colorAccent"
app:itemHorizontalTranslationEnabled="true"
android:background="?android:attr/windowBackground"
app:menu="@menu/menu_nav">
</com.google.android.material.bottomnavigation.BottomNavigationView>
这是Logcat
Process: com.example.dotchat, PID: 19593
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:248)
at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:222)
at com.google.android.material.badge.BadgeDrawable.<init>(BadgeDrawable.java:360)
at com.google.android.material.badge.BadgeDrawable.createFromAttributes(BadgeDrawable.java:293)
at com.google.android.material.badge.BadgeDrawable.create(BadgeDrawable.java:261)
at com.google.android.material.bottomnavigation.BottomNavigationMenuView.getOrCreateBadge(BottomNavigationMenuView.java:641)
at com.google.android.material.bottomnavigation.BottomNavigationView.getOrCreateBadge(BottomNavigationView.java:673)
at com.example.dotchat.DashboardActivity$1.onDataChange(DashboardActivity.java:78)
at com.google.firebase.database.core.ValueEventRegistration.fireEvent(ValueEventRegistration.java:75)
at com.google.firebase.database.core.view.DataEvent.fire(DataEvent.java:63)
at com.google.firebase.database.core.view.EventRaiser$1.run(EventRaiser.java:55)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:200)
文件
src/main/res/values/styles.xml的内容应如下所示:
@android:彩色/透明
@android:彩色/透明
@颜色/原色
@颜色/原色变体
您的样式AppTheme
的父项是什么
编辑:根据@Gabriele Mariotti的评论编辑此错误,因为在styles.xml文件中,您必须更改基本应用程序主题以使用theme.MaterialComponents
可能是您正在使用的
Theme.AppCompat.Light.DarkActionBar
或
所以做这个改变吧
<style name="AppTheme" parent="Theme.MaterialComponents">
</style>
能否添加文件的内容src/main/res/values/styles.xml
?您的应用程序主题是否继承自theme.MaterialComponents?使用theme.MaterialComponents作为应用程序主题,并将库更新为最新的稳定版本1.2.1这是否回答了您的问题?
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="android:navigationBarColor"> @android:color/transparent</item>
<item name="android:statusBarColor"> @android:color/transparent</item>
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryVariant">@color/colorPrimaryVariant </item>
</style>
Theme.AppCompat.Light.DarkActionBar
ThemeOverlay.AppCompat
<style name="AppTheme" parent="Theme.MaterialComponents">
</style>