以编程方式将 MenuItem 添加到特定位置的菜单或组
Add a MenuItem to Menu at specific position or group programmatically
我有一个
<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
您可以使用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_item
和 teams_item
之间插入,你可以使用 orderInCategory
也就是在
之间
// 500 is between main_item(100) and teams_item(1000)
MenuItem mi = menu.add( NONE, someId, 500, "some name" );
我有一个
<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
您可以使用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_item
和 teams_item
之间插入,你可以使用 orderInCategory
也就是在
// 500 is between main_item(100) and teams_item(1000)
MenuItem mi = menu.add( NONE, someId, 500, "some name" );