mr_*_*wan 12 android android-layout android-menu android-fragments
我有一个有2个片段的布局.这些片段使用相同的菜单,因为我有另一个布局只有其中一个(用于小屏幕设备).
我的问题是菜单中显示每个片段的菜单项,因为它们来自同一个菜单,所以它们彼此重复.我需要只显示一个片段的菜单,而不是两者.无论如何我可以存档吗?
或者,可能更好,创建2个不同的菜单.一个用于仅具有这些片段之一的布局(用于小屏幕设备),另一个用于具有两个片段的布局.我怎么能这样做?
编辑:我使用ActionBarSherlock库来实现向后兼容,我在Android 3.0模拟器上测试它.
mr_*_*wan 24
我找到了不太好的解决方案.在每个片段的onCreateOptionsMenu()中,调用menu.clear()以在菜单膨胀之前删除任何现有的菜单项.
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
menu.clear();
inflater.inflate(R.menu.main, menu);
super.onCreateOptionsMenu(menu, inflater);
}
Run Code Online (Sandbox Code Playgroud)
这将发布未来的问题.我可能决定为每个片段使用不同的菜单,每个菜单共享菜单项.我想我们可以在onCreateOptionsMenu()上操作菜单,但是目前我不知道如何在使用MenuInflater对菜单进行膨胀之前获取与该片段相关联的菜单项.