如何动态创建菜单项时设置orderInCategory。我动态创建的菜单项始终位于先前创建的菜单项的左侧(以xml创建)。
我动态创建的菜单是ActionBarSherlock溢出菜单。
SubMenu overflowMenu = menu.addSubMenu("Action Item");
overflowMenu.add(0,SUBMENU_ABOUT,Menu.NONE,"About");
overflowMenu.add(0,SUBMENU_HELP,Menu.NONE,"Help");
overflowMenu.add(0,SUBMENU_REPORT,Menu.NONE,"Send Report");
overflowMenu.add(0,SUBMENU_LOGBOOK,Menu.NONE,"LogBook");
MenuItem subMenu1Item = overflowMenu.getItem();
subMenu1Item.setIcon(R.drawable.overflow_menu_trans);
那么如何将此图标放在菜单的最右边?现在,它已经放在xml
中的左侧<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_register"
android:orderInCategory="1"
android:showAsAction="always"
android:icon="@drawable/action_register"
android:title="@string/menu_register"/>
</menu>
答案 0 :(得分:1)
@CommonsWare给出了这个答案。实际上要将项目设置到最右边,我必须将orderInCategory设置为更高的值,我将其设置为更低的值。动态地,它可以作为
完成SubMenu overflowMenu=menu.addSubMenu(0, MENU_ID, 300, "Action Item");
其中300是要设置为更高值的orderId,然后是menu.xml的orderInCategory