如何在底部导航视图中添加通知标记?

时间:2017-05-02 10:12:19

标签: android

<item
        android:id="@+id/nav_gallery"
        app:actionViewClass="android.widget.TextView"/>

这是底部导航的菜单。

   TextView gallery=(TextView)  
   MenuItemCompat.getActionView(navigationView.getMenu().
   findItem(R.id.nav_gallery)); //getting menu item of bottom nav view
   gallery.setText("99+");

但此代码不适用于底部导航视图.BottomNavigationView显示时未设置任何通知计数器。

2 个答案:

答案 0 :(得分:1)

最新的Material依赖项现在支持本地添加徽章计数,只需在build.gradle中更新Material依赖项

implementation 'com.google.android.material:material:1.1.0-alpha09'

然后只需添加

val navBar  = findViewById<BottomNavigationView>(R.id.bottom_navigation)
navBar.getOrCreateBadge(R.id.action_stamp).number = 2

,在style.xml中,只需将“ AppCompat”更改为“ MaterialComponents”

<style name="AppTheme" parent="Theme.MaterialComponents.Light.DarkActionBar">

答案 1 :(得分:-1)

无法访问getOrCreaeteBadge的人的另一种方法是使用下面的方法;

  1. 确保底部导航上的主题设置为: Theme.MaterialComponents.Light.DarkActionBar

  2. 然后,现在:

     String messages = getIntent().getStringExtra("messages_count");
     messages = messages.substring(10,11);
     Log.d("MessagesCount", "getIncomingIntent: "+messages);
     navigation.showBadge(R.id.bottom_messages).setNumber(Integer.parseInt(messages));
    

你很好!示例输出如下

enter image description here