Как добавить значок с номером в иконку айтема BottomNavigation?
Ситуация такая. В Bottom Navigation нужно добавить иконку корзины. Но в зависимости от числа товаров в этой корзине - над этой иконкой должен появляться кружочек с числом эти товаров
Если корзина пуста, этот круг должен скрываться. Проблема в том, что я могу установить только 1 иконку. Пытался объединить эти 2 элемента в layout и показывать их, скрывая круг при необходимости. Но item в качестве иконки принимает только drawable, minmap и color
Xml файл для меню
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/main_fragment"
android:icon="@drawable/nav_bar_home_selection"
android:title="Home"/>
<item
android:id="@+id/basket_fragment"
android:icon="@drawable/nav_bar_basket_selection"
android:title="Basket"/>
<item
android:id="@+id/favorite_fragment"
android:icon="@drawable/nav_bar_favorite_selection"
android:title="Favorite"/>
</menu>
Ответы (1 шт):
Автор решения: Sergei Buvaka
→ Ссылка
Вы можете создать значок:
var badge = bottomNavigation.getOrCreateBadge(menuItemId)
badge.isVisible = true
// An icon only badge will be displayed unless a number is set:
badge.number = 99
Если вам нужно менять видимость значка, то сделать это можно так:
val badgeDrawable = bottomNavigation.getBadge(menuItemId)
if (badgeDrawable != null) {
badgeDrawable.isVisible = false
badgeDrawable.clearNumber()
}
Для удаления:
bottomNavigation.removeBadge(menuItemId)
Здесь есть более подробное руководство.
