我有一个包含 2 个片段的布局。这些片段使用相同的菜单,因为我有另一个布局,其中只有其中一个(在小屏幕设备中使用)。
我的问题是每个片段的菜单项显示在菜单中,并且由于它们来自同一菜单,因此它们彼此重复。我需要仅显示一个片段的菜单,而不是两者。无论如何我可以存档这个吗?
或者,也许更好,创建 2 个不同的菜单。一种用于仅具有这些片段之一的布局(用于小屏幕设备),另一种用于具有两个片段的布局。我怎么能这样做呢?
编辑:我使用 ActionBarSherlock 库来实现向后兼容性,并在 Android 3.0 模拟器上测试它。
我找到了不太好的解决方案。在每个片段的 onCreateOptionsMenu() 中,调用 menu.clear() 在膨胀菜单之前删除任何现有的菜单项。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
inflater.inflate(R.menu.main, menu);
super.onCreateOptionsMenu(menu, inflater);
}
这将发布未来的问题。我可能决定为每个片段使用不同的菜单,每个菜单共享菜单项。我认为我们可以在 onCreateOptionsMenu() 处操作菜单,但目前我不知道如何在使用 MenuInflater 对其进行膨胀之前获取与片段关联的菜单项。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)