android - 如何为 Material Design Drawer 的 NavigationView 上的项目添加通知值?

标签 android navigation-drawer material-design navigationview

我的问题很简单,如何在NavigationView上的item上添加通知值?对于 Material Design Drawer像这样?

enter image description here

菜单项中是否有用于定义抽屉的属性?

<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>

最佳答案

这可以通过 AppCompat-V7 版本 23 中的 NavigationView 使用操作 View 来实现。 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"/>
  1. 从您希望在 menu/nav_drawer.xml 中显示计数器值的每个项目中添加对它的引用(确保使用 app 命名空间):

    <item 
        ...
        app:actionLayout="@layout/activity_main_nav_drawer_menu_counter"
        />
    
  2. 添加一个方法来为 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);
    }
    

关于android - 如何为 Material Design Drawer 的 NavigationView 上的项目添加通知值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31050603/

相关文章:

java - 如何删除 NavigationView 中可绘制对象的色调?

java - 在 recyclerview 中选择项目时如何从 Firebase 中删除值?

android - 如何在应用程序关闭时弹出警报

javascript - 它无法识别导入文件中的文件

fonts - 图标字体 : some icon display as text instead on my machine

html - 实现在线和离线表现不同的CSS

android - Cordova/PhoneGap : Package Name, 类名, key 哈希

android - 不同的 Chromecast 图标集

java - 修复 NavigationDrawer 滚动

navigation-drawer - Firebase Admob - 横幅广告与抽屉导航重叠