我正在开发一个应该支持手机和平板电脑的应用程序。 在这个应用程序中我使用的是Android的片段。
现在应用程序的流程就像
MainActivity - >片段1 - > Fragment2
在这个应用程序中,我想要一个菜单项,它应该只显示在Fragment2中以及活动的菜单项。
所以我尝试了一个解决方案,比如在MainActivity和Fragment2中添加全局菜单项,用Fragment2特定菜单替换整个MainActivity菜单。
setHasOptionsMenu(true);
在onCreateView中,并实现此方法。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_f, menu);
super.onCreateOptionsMenu(menu,inflater);
}
现在它的工作对于手机布局来说非常好,但是当出现平板电脑问题时会出现。
这是我的ScreenShots。
片段1
在按键9(平板电脑模式)中按9时,片段1和片段2组合。
最后当我再次按9回到pHone视图时,它显示了我额外的菜单项。
我刚在Image中标记了一个额外的菜单项。那么为什么我来了,我该如何解决呢?
答案 0 :(得分:0)
您需要在fragment 1
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
它会打电话给onPrepareOptionsMenu
,您可以在其中隐藏由fragment2
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
menu.setGroupVisible(0, false);
}