BottomNavigationView 在图标上显示标签

BottomNavigationView shows label over icon

我正在创建一个包含 BottomNavigationView 的应用程序,但在更新库后 com.google.android.material:material:1.5.0 我的应用程序在图标上显示标签。

BottomNavigationView 的布局:

<com.google.android.material.bottomnavigation.BottomNavigationView
        android:id="@+id/nav_view"
        android:layout_width="match_parent"
        android:layout_height="?android:attr/actionBarSize"
        android:background="@color/white"
        android:alpha="0.9"
        app:layout_constraintBottom_toBottomOf="parent"
        app:itemIconTint="@drawable/bottom_nac_icon_color_selector"
        app:itemTextColor="@drawable/bottom_nac_icon_color_selector"
        app:menu="@menu/bottom_nav_menu"
        app:labelVisibilityMode="labeled"/>

bottom_nav_menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/navigation_home"
        android:icon="@drawable/ic_location_on_black_24dp"
        android:title="@string/city" />

    <item
        android:id="@+id/navigation_menu"
        android:icon="@drawable/ic_dashboard_black_24dp"
        android:title="@string/title_menu" />

</menu>

主题只包含色调,所以我不会在这里包含它。

有没有办法把标签放回图标下面?我必须降级库吗?

经过仔细检查,我发现我的默认应用程序样式 Theme.AppCompat.DayNight.DarkActionBar 导致了问题,并同时将其覆盖为 Theme.MaterialComponents.DayNight.DarkActionBar,包括将组件样式从 AppCompat 覆盖为MaterialComponents,我解决了这个问题。

接下来,我必须添加

<item name="bottomNavigationStyle">@style/NavigationViewTheme</item>

改为默认样式,直接在组件中去掉样式调用。