我正在使用 \menu 文件夹下的 xml 中定义的 android 选项菜单。菜单中有 5 个项目,它们在布局中显示在两行 - 顶行包含 2 个项目,底行包含其他 3 个项目。
有没有办法配置菜单,所以顶行将包含 3 个项目,而底行将包含另外 2 个?
谢谢!
我正在使用 \menu 文件夹下的 xml 中定义的 android 选项菜单。菜单中有 5 个项目,它们在布局中显示在两行 - 顶行包含 2 个项目,底行包含其他 3 个项目。
有没有办法配置菜单,所以顶行将包含 3 个项目,而底行将包含另外 2 个?
谢谢!
我认为,如果您将菜单项放在一组中,它会尝试将它们放在一起。当您在活动中创建菜单时,控制菜单项的顺序会更好,而不是使用 XML。在您的活动中,您可以在组中获取菜单项,如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
int group1Id = 1;
int Id1 = Menu.FIRST;
int Id2 = Menu.FIRST +1;
int Id3 = Menu.FIRST +2;
super.onCreateOptionsMenu(menu);
menu.add(group1Id, Id1, 1, "Option 1");
menu.add(group1Id, Id2, 2, "Option 2");
menu.add(group1Id, Id3, 3, "Option 3");
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case 1: //for option 1
return true;
case 2: //for option 2
return true;
case 3: //for option 3
return true;
default:
return false;
}
参数: groupId 此项目应属于的组标识符。
itemId 唯一的项目 ID。如果您不需要唯一 ID,请使用 NONE。
order 项目的顺序。如果您不关心订单,请使用 NONE。
标题 要为项目显示的文本。
返回:新添加的菜单项。
我们可以为选项菜单使用不同的布局,例如:-
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menuRefresh"
android:icon="@drawable/ic_menu_refresh"
android:title="Refresh"
android:showAsAction = "always"/>
<item android:id="@+id/menuAbout"
android:icon="@drawable/ic_menu_info_details"
android:title="About"
android:showAsAction = "always"/>
</menu>
你可以使用“never”“withtext”“ifRoom”“always”“collapseActionView” 或者你可以在这里阅读完整的细节