如何在动态创建菜单项时设置 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>
最佳答案
@CommonsWare 给出了这个答案。实际上,要将项目设置到最右边,我必须将 orderInCategory 设置为较高的值,而我将其设置为较低的值。动态地,它可以完成为
SubMenu overflowMenu=menu.addSubMenu(0, MENU_ID, 300, "Action Item");
其中 300 是要设置为比 menu.xml 的 orderInCategory 更高的值的 orderId
关于android - 如何动态设置orderInCategory?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24227682/