android - 如何从支持设计库向 Nav Drawer 添加计数器

标签 android navigation-drawer android-support-design

我需要在 NavigationDrawer 的字段 nav_films_been_wathced 中添加一个计数器,但我找不到正确的方法。我正在使用 com.android.support:design:23.0.1

这是我的代码:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:openDrawer="start">

    <include
        layout="@layout/app_bar_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <android.support.design.widget.NavigationView
        android:id="@+id/nav_view"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:fitsSystemWindows="true"
        app:headerLayout="@layout/nav_header_main"
        app:menu="@menu/activity_main_drawer" />

</android.support.v4.widget.DrawerLayout>

我的 menu.xml:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <group
        android:id="@+id/group_top"
        android:checkableBehavior="single">
        <item
            android:id="@+id/nav_main"
            android:icon="@drawable/ic_home"
            android:title="@string/nav_main" />
        <item
            android:id="@+id/nav_films_been_wathced"
            android:icon="@drawable/ic_films"
            android:title="@string/nav_films_been_wathced" />
    </group>

    <group
        android:id="@+id/group_bottom"
        android:checkableBehavior="none">
        <item
            android:id="@+id/nav_about"
            android:icon="@drawable/ic_info"
            android:title="@string/nav_about" />
    </group>

</menu>

最佳答案

在修订版 23.0.1 中,您可以将 actionView 添加到导航菜单项中。做这样的事情:

<item
    android:id="@+id/example_id"
    app:actionViewClass="android.widget.TextView"
    app:showAsAction="always"
    android:icon="@drawable/example_drawable"
    android:title="@string/example_title" />

您可以像这样获取对操作 View 的引用:

TextView actionView = (TextView) MenuItemCompat.getActionView(mNavigationView.getMenu().findItem(R.id.example_id));

从那里你可以像对待任何普通的 TextView 一样对待它:-)

这是它的外观预览:

https://drive.google.com/a/bubblebearapps.co.uk/file/d/0B2uf1i54j9TIcUVVYTlfcFlXdmM/view?usp=sharing

关于android - 如何从支持设计库向 Nav Drawer 添加计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33235502/

相关文章:

android - 打开失败 : EBUSY (Device or resource busy)

java - 在 ImageView 中分别设置来自相机的两个裁剪图像(Android Studio)

android - SearchView Android 中的自定义图标

android - 按下操作栏上的后退按钮时未调用 onOptionsItemSelected - Android

Android RatingBar ratingBarStyleSmall 只显示完整/填充的星星

android - 在android中单击按钮时显示带有消息的进度条

android - 使用unity3d在android中播放视频

android - 切换可见性 AppBarLayout View 会导致加载 fragment 的间距问题

android - 抽屉导航android中的过渡

android - java.lang.NoClassDefFoundError : android. 支持.v7.app.AppCompatDelegateImplV14