Добавление значков в нижнюю навигацию и невозможность ссылаться на getOrCreateBadge

#android #material-design #bottomnavigationview #badge

Вопрос:

Я пытаюсь добавить значки в нижнюю навигацию, но проблема в том, что на getOrCreateBadge не ссылаются. Я не могу получить доступ к этому методу.

Ошибка : Неразрешенная ссылка: getOrCreateBadge

  <RelativeLayout
   android:layout_width="match_parent"
   android:layout_height="match_parent">


   <androidx.fragment.app.FragmentContainerView
       android:id="@ id/fragment_container"
       android:name="androidx.navigation.fragment.NavHostFragment"
       android:layout_width="match_parent"
       android:layout_height="match_parent"
       android:layout_above="@ id/bnv_nav"
       app:defaultNavHost="true"
       app:layout_behavior="@string/appbar_scrolling_view_behavior" />



   <com.google.android.material.bottomnavigation.BottomNavigationView
       android:id="@ id/bnv_nav"
       android:layout_width="match_parent"
       android:layout_height="wrap_content"
       android:minHeight="@dimen/dp56"
       android:layout_alignParentBottom="true"
       android:fitsSystemWindows="true"
       app:itemIconTint="@drawable/tab_color"
       app:itemTextColor="@drawable/tab_color" />
 

Тема

 <style name="AppTheme" parent="Theme.AppCompat.Light">
       <item name="colorPrimary">@color/white</item>
       <item name="android:textViewStyle">@style/AppTheme.Widget.TextView</item>
       <item name="android:actionBarStyle">@style/AppTheme.ActionBar</item>
       <item name="android:navigationBarColor" tools:targetApi="21">@color/white</item>
       <item name="android:windowLightNavigationBar" tools:targetApi="27">true</item>
       <item name="android:windowDisablePreview">true</item>
   </style>
 

Я добавляю пункт меню во время выполнения.

Вещи, которые я уже пробовал :

  1. Добавление пунктов меню из самого xml : по-прежнему без эффекта
  2. Изменение темы на тему материала : все та же проблема
  3. Создал отдельный проект с нижней навигацией : в этом проекте нет проблем, если я добавлю значки. Я также изменил его тему на тему моего приложения, т. Е. Значки совместимости приложений по-прежнему отлично работают в этом проекте.
  4. Изначально зависимость не была добавлена из материала Android, и я смог использовать нижнюю панель навигации. Но так как я столкнулся с проблемой при добавлении значков, я добавил зависимость извне и убедился, что также поставил последнюю версию, но все равно в конце столкнулся с той же проблемой. Невозможно добавить значки в нижней навигации.

Я знаю, что это что-то очень простое, но если бы кто-нибудь мог указать на это, это было бы большим подспорьем, уже столкнувшимся с этой проблемой за последние два дня. Заранее благодарю.

Ответ №1:

В идеале вы должны использовать реализацию «com.google.android.материал:материал:1.3.0» . Убедитесь, что вы удалили папку сборок перед синхронизацией и восстановлением gradle.

Комментарии:

1. Я проверил, что смог разобраться в проблеме, так как приложение указывает на material design 1.0.0(после миграции), из-за чего я не могу использовать значки. Можете ли вы предложить мне какой-либо обходной путь, с помощью которого я могу указать нижний навигационный компонент на новейший дизайн материалов. и остальные компоненты не затронуты(я могу использовать приложение compat).

2. реализация «com.google.android.материал:материал:1.3.0» Какие-либо проблемы с использованием версии 1.3.0?

3. Что-то вроде этого может помочь BottomNavigationView android:тема=»@стиль/тема. Материальные компоненты. Свет» />