我正在使用android studio 4+的导航抽屉项目框架,菜单中有两个片段。
一个包含android.support.v4.view.viewpager的片段。viewpager包含两个片段,其中一个有菜单。当我使用手势更改viewpager菜单中的片段时,显示和消失取决于哪个片段现在可见-一切都是正确的。
现在当出了问题时:
如果我打开导航抽屉中的第一个片段,然后使用菜单输入片段,然后使用导航抽屉菜单切换到第二个片段,仍然会出现-为什么?我不明白。
编辑:
如果我添加
setHasOptionsMenu(true);
和
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.clear();
super.onPrepareOptionsMenu(menu);
}
对于不应该有菜单的片段,问题就消失了,但我仍然认为根本原因是其他地方和上面的解决方案是肮脏的。
最佳答案
我知道我迟了2年才回答,但是这可能有利于面临同样问题的程序员。我也有同样的问题,我只需打电话就解决了
setHasOptionsMenu(true)
在onCreateView()中。
这将确保新片段有自己的选项菜单,然后可以使用oncreateoptionsmenu()创建该菜单。如果不想使用任何选项菜单,请避免实现onCreateOptions菜单()。