为导航抽屉中的每个项目添加数字指示器

时间:2016-01-22 12:38:51

标签: java android eclipse android-studio android-navigation-drawer

我已经停止在Eclipse中编程Android,我开始在Android Studio中开发。我在Eclipse中有一个带有de following navigation抽头的应用程序:

enter image description here

菜单项有一个数字,表示里面有多少项。我在Eclipse中通过listview适配器执行此操作,但在Android Studio中我有一个menu.xml,它具有项目信息。

 <item
        android:id="@+id/nav_manage"
        android:icon="@drawable/ic_menu_manage"
        android:title="Resolución OS" />

我如何设置数字以及如何从Java代码更新它?

感谢和抱歉我的英语,这是非常非常糟糕的。

3 个答案:

答案 0 :(得分:0)

定义DrawerLayout时,它的工作方式如下

<android.support.v4.widget.DrawerLayout
    android:id="@+id/root"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- VIEWGROUP FOR MAIN CONTENT -->
    <!-- this is what you see by default -->

    <!-- VIEWGROUP FOR LEFT DRAWER -->
    <!-- set Layout_Gravity as START (or LEFT) -->

    <!-- VIEWGROUP FOR RIGHT DRAWER -->
    <!-- set Layout_Gravity as END (or RIGHT) -->
</android.support.v4.widget.DrawerLayout>

因此,如果您将视图组设置为包含该窗体中的元素的左侧抽屉,那么它看起来就像那样。基本上,您需要一个回收站视图,或者只需手动指定它们(或创建自己的自定义视图组)。

<RelativeLayout  android:id="@+id/left_drawer_clickable_item"
                 android:layout_width="match_parent" 
                 android:layout_height="24dp">
    <LinearLayout android:id="@+id/left_drawer_icon_holder" 
                  android:layout_width="24dp" 
                  android:layout_height="24dp" 
                  android:orientation="vertical"
                  android:layout_alignParentLeft="true">
        <ImageView android:id="@+id/left_drawer_icon" 
                   android:layout_width="match_parent" 
                   android:layout_height="match_parent" 
                   android:src="@drawable/icon"/>
    </LinearLayout>
    <TextView android:layout_width="wrap_content" 
              android:layout_height="match_parent"
              android:id="@+id/left_drawer_number"
              android:layout_alignParentRight="true"/>
    <TextView android:id="@+id/left_drawer_text"
              android:layout_width="match_parent" 
              android:layout_height="match_parent"
              android:layout_toLeftOf="@+id/left_drawer_number"
              android:layout_toRightOf="@+id/left_drawer_icon"/>
</RelativeLayout>

如果您在RecyclerView中将其用作View Holder的视图参数,则可以相应地对其进行参数化(除非您确实希望在NavigationView中使用Design Support Library)。

答案 1 :(得分:0)

创建计数器布局,即 menu_counter.xml:

<?xml version="1.0" encoding="utf-8"?>
<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:textAppearance="@style/TextAppearance.AppCompat.Body2" />

在抽屉菜单xml中引用它,即menu/drawer.xml:

<item
    ...
    app:actionLayout="@layout/menu_counter" />

请记住使用 app 而不是 android 命名空间。

答案 2 :(得分:0)

尝试使用liatview或recycler视图创建左抽屉。编写自定义适配器,您可以在其中轻松更新所需内容。您只需通过适配器更改传递给listview或recycleler视图的数据,并查看它是否已更新。