web-dev-qa-db-ja.com

材料ライブラリのButbuitemのMenuItemのバッジを表示する方法(バージョン1.1.0-alpha08)?

私のアプリでmenuItemBottomNavigationViewのバッジを追加したいだけです。私は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です。これにより、この問題に対するソリューションを詳細に解決できる場合は、この問題のためにソリューションを提供することができます。

6
  • 最初にプロジェクトをAndroidXに移行します。 移行方法
  • build.gradleに依存関係を含める:

implementation 'com.google.Android.material:material:version'version

  • あなたのベースのApplevelテーマは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"/>
15
Sumit Shukla