我的问题非常简单,如何在NavigationView上为Material Design Drawer添加项目的通知值?
菜单项中是否有用于定义抽屉的属性?
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<group
android:checkableBehavior="single">
<item
android:id="@+id/drawer_home"
android:checked="true"
android:icon="@drawable/ic_home_black_24dp"
android:title="@string/home"/>
<item
android:id="@+id/drawer_favourite"
android:icon="@drawable/ic_favorite_black_24dp"
android:title="@string/favourite"/>
...
<item
android:id="@+id/drawer_settings"
android:icon="@drawable/ic_settings_black_24dp"
android:title="@string/settings"/>
</group>
</menu>
答案 0 :(得分:12)
使用操作视图,可以使用AppCompat-V7第23版的NavigationView
。
1.为计数器创建布局,例如nav_drawer_counter.xml
:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
android:textColor="@color/colorPrimary"/>
从您希望在menu/nav_drawer.xml
中显示计数器值的每个项目中添加对它的引用(确保使用app
命名空间):
<item
...
app:actionLayout="@layout/activity_main_nav_drawer_menu_counter"
/>
添加一个方法,将值设置为TextView
,例如:
@Override
protected void onCreate(Bundle savedInstanceState) {
....
setNavItemCount(R.id.nav_notifications, 10);
}
private void setNavItemCount(@IdRes int itemId, int count) {
TextView view = (TextView) navigationView.getMenu().findItem(itemId).getActionView();
view.setText(count > 0 ? String.valueOf(count) : null);
}
答案 1 :(得分:5)
哦是的......您可以更改该计数器值。
根据您提供的图像,您正在使用Rudson Lima's Material Design Navigation Drawer
在其库中,类public void setNewCounterValue(int drawerItemPosition, int counterValue);
中有一个函数NavigationLiveo
。
希望您能正确使用其对象来调用此函数。
最好的运气......: - )
答案 2 :(得分:1)
您应该检查原始项目的确切方式&#39; github:
https://github.com/rudsonlive/NavigationDrawer-MaterialDesign/ https://play.google.com/store/apps/details?id=br.liveo.navigationliveo
基本上,您为ListView的行创建自定义视图并相应地更新它们。
答案 3 :(得分:0)
从某些研究中,我发现,不,没有真正的方法将通知添加到抽屉。但是,开发人员的Creating a Navigation Drawer教程中显示的示例显示了如何在每次打开时强制重绘(以及如何使用Menu XML工作表实现重绘)。它没有详细介绍如何添加通知,但还有其他来源。
This tutorial是另一个&#34;如何制作导航抽屉&#34;教程,详细介绍了如何使用ListView适配器来适应通知按钮。我认为这很可能是你想要的。
祝你好运!我希望有所帮助。答案 4 :(得分:0)
您可以使用库来实现此目的。试试MaterialNavigationDrawer或MaterialDrawer