私のアプリでmenuItem
のBottomNavigationView
のバッジを追加したいだけです。私はBottomNavigationView
を使用しています____________________________________________________ BottomNavigationView
のshowbadgeメソッドその方法は使用できません。
getBadge
のインスタンスを介してgetOrCreateBadge
およびBottomNavigationView
メソッドを呼び出してみました。
BottomNavigationView bottomNavigationView = findViewById(R.id.bottom_nav);
if (bottomNavigationView.getBadge(3) == null) {
audioPlayingCountBadge = bottomNavigationView.getOrCreateBadge(3);
audioPlayingCountBadge.setBackgroundColor(getResources().getColor(R.color.colorPrimaryDark));
} else {
audioPlayingCountBadge = bottomNavigationView.getBadge(3);
}
audioPlayingCountBadge.setVisible(true);
_
私はAndroid開発]ではNoobです。これにより、この問題に対するソリューションを詳細に解決できる場合は、この問題のためにソリューションを提供することができます。
build.gradle
に依存関係を含める:implementation 'com.google.Android.material:material:version'
version
Material Component Theme
が好きです。あなたのアプリレベルのテーマ
<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
アクティビティコード:
val menuItemId: Int = btm_nav.menu.getItem(0).itemId //0 menu item index.
badgeDrawable = btm_nav.getOrCreateBadge(menuItemId)
badgeDrawable.isVisible = true
badgeDrawable.number = 10
badgeDrawable.badgeGravity = BadgeDrawable.TOP_END //badge gravity
//BadgeDrawable.TOP_START
//BadgeDrawable.BOTTOM_END
//BadgeDrawable.BOTTOM_START
badgeDrawable.isVisible = false //hide badge
badgeDrawable.clearNumber()
XMLレイアウト:
<com.google.Android.material.bottomnavigation.BottomNavigationView
Android:id="@+id/btm_nav"
style="@style/Widget.Design.BottomNavigationView"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:menu="@menu/bottom_nav_menu"/>