问题描述
Android 子菜单是否应该覆盖主菜单?我曾希望子菜单会出现在单击的主菜单项旁边,就像在任何桌面应用程序中一样(例如 Android Studio 中的 File/OpenRecent)。但是当显示子菜单时原来的菜单消失了:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
getMenuInflater().inflate(R.menu.menu_main,menu);
SubMenu subMenu = menu.addSubMenu(Menu.NONE,Menu.NONE,"sub menu test");
subMenu.add(Menu.NONE,1001,"menu " + 1001);
subMenu.add(Menu.NONE,1002,"menu " + 1002);
subMenu.add(Menu.NONE,1003,"menu " + 1003);
return true;
}
我可以使用代码或添加样式来更改此操作吗? (子菜单每次都会不同,因此必须以编程方式创建或至少编辑)。
解决方法
Android 子菜单是否应该覆盖主菜单?
是的。
我可以使用代码或添加样式来更改此操作吗?
不,尽管您可以创建自己的 UI 而不是使用 Menu
和 SubMenu
。
我曾希望子菜单会出现在被点击的主菜单项旁边,就像在任何桌面应用中一样
一般来说,台式机的屏幕比大多数 Android 设备大得多。他们有屏幕空间来做那种飞出行为。 Android 的方法旨在缩小到更小的屏幕。您采用的任何自定义方法还需要考虑您愿意支持多小的屏幕。