<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显示时未设置任何通知计数器。
答案 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
的人的另一种方法是使用下面的方法;
确保底部导航上的主题设置为:
Theme.MaterialComponents.Light.DarkActionBar
然后,现在:
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));
你很好!示例输出如下