如何为 material 库(版本 1.1.0-alpha08)的 BottomNavigationView 的 menuItem 显示徽章?
How to display badge for a menuItem of BottomNavigationView of material library (version 1.1.0-alpha08)?
我只想在我的应用程序中为 menuItem
个 BottomNavigationView
添加徽章。我正在使用 Material 组件库(版本 1.1.0-alpha08)的 BottomNavigationView
,因为它的最新版本是在 7 天前发布的,从现在开始我没有找到任何相同的教程,现在因为此版本的 BottomNavigationView
的 showBadge 方法发生了变化,我们无法使用该方法。
我尝试通过 BottomNavigationView
.
的实例调用 getBadge
和 getOrCreateBadge
方法
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);
如果有人能详细提供这个问题的解决方案,将不胜感激。
- 首先将你的项目迁移到androidX。
- 在您的
build.gradle
中包含依赖项:
implementation 'com.google.android.material:material:version'
Get Version
- 你的 Base 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>
Activity代码:
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"/>
2021年,显示圆点通知真的很简单只需要添加1行。
bottomNavigationView=findViewById(R.id.YOUR_BOTTOM_NAVIGATION_LAYOUT_ID);
要在底部导航项上显示点,只需使用这个
bottomNavigationView.getOrCreateBadge(R.id.YOUR_NAV_ITEM_ID).setVisible(true);
和
要隐藏底部导航项上的点,请使用此行
bottomNavigationView.getOrCreateBadge(R.id.YOUR_NAV_ITEM_ID).setVisible(false);
如果您只想浏览最新文档,也可以设置数字。
我只想在我的应用程序中为 menuItem
个 BottomNavigationView
添加徽章。我正在使用 Material 组件库(版本 1.1.0-alpha08)的 BottomNavigationView
,因为它的最新版本是在 7 天前发布的,从现在开始我没有找到任何相同的教程,现在因为此版本的 BottomNavigationView
的 showBadge 方法发生了变化,我们无法使用该方法。
我尝试通过 BottomNavigationView
.
getBadge
和 getOrCreateBadge
方法
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);
如果有人能详细提供这个问题的解决方案,将不胜感激。
- 首先将你的项目迁移到androidX。
- 在您的
build.gradle
中包含依赖项:
implementation 'com.google.android.material:material:version'
Get Version
- 你的 Base 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>
Activity代码:
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"/>
2021年,显示圆点通知真的很简单只需要添加1行。
bottomNavigationView=findViewById(R.id.YOUR_BOTTOM_NAVIGATION_LAYOUT_ID);
要在底部导航项上显示点,只需使用这个
bottomNavigationView.getOrCreateBadge(R.id.YOUR_NAV_ITEM_ID).setVisible(true);
和
要隐藏底部导航项上的点,请使用此行
bottomNavigationView.getOrCreateBadge(R.id.YOUR_NAV_ITEM_ID).setVisible(false);
如果您只想浏览最新文档,也可以设置数字。