在程序中以特定位置或组的方式动态向菜单添加菜单项。

12

我有一个

<android.support.design.widget.NavigationView
  app:menu="@menu/drawer"
/>

以下是菜单中的项目:

<item
    android:id="@+id/main_item"
    android:icon="@drawable/ic_menu_main"
    android:title="@string/app_name"/>

<group
    android:id="@+id/some_group"
    android:checkableBehavior="single"/>

<item
    android:id="@+id/teams_item"
    android:icon="@drawable/ic_menu_teams"
    android:title="@string/teams"/>

现在我想将一个项目添加到some_group中或者它的下方。

我尝试过:

MenuItem mi = menu.add( R.id.soume_group, someId, NONE, "some name" );
或者
MenuItem mi = menu.add( R.id.soume_group, someId, 2, "some name" );

但是菜单项被添加到菜单底部。

如何解决我的问题?

TIA

1个回答

25

您可以使用 orderInCategory 来定义顺序

    <item
        android:id="@+id/main_item"
        android:icon="@drawable/ic_menu_main"
        android:orderInCategory="100"   
        android:title="@string/app_name"/>

    <item
        android:id="@+id/teams_item"
        android:icon="@drawable/ic_menu_teams"
        android:orderInCategory="1000"      
        android:title="@string/teams"/>

如果你想在 main_itemteams_item 之间插入内容,你可以使用 orderInCategory ,它位于之间。

// 500 is between main_item(100) and teams_item(1000)
MenuItem mi = menu.add( NONE, someId, 500, "some name" ); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接