我使用导航抽屉 - 来自android studio 4+的项目框架 - 我在菜单中有两个片段。
包含android.support.v4.view.ViewPager的一个片段。 ViewPager包含两个片段,其中一个具有菜单。当我使用手势来更改viewpager菜单中的片段时,显示和消失取决于现在可见的片段 - 一切都是正确的。
现在当出现问题时会流动:
如果我从导航抽屉打开第一个片段并使用菜单swype到片段,然后使用导航抽屉菜单更改为第二个片段仍然出现 - 为什么?我不明白。
编辑:
如果我添加
setHasOptionsMenu(true);
和
@Override
public void onPrepareOptionsMenu(Menu menu) {
menu.clear();
super.onPrepareOptionsMenu(menu);
}
到片段不应该有菜单然后问题消失了,但我认为根本原因它在其他地方和上面的解决方案是脏的。
答案 0 :(得分:3)
我知道我迟到了2年才回答,但这可能会让那些面临同样问题的程序员受益。我有同样的问题,我通过简单地调用
解决了这个问题setHasOptionsMenu(true)
在 OnCreateView()。
这将确保新片段具有自己的选项菜单,然后可以使用 onCreateOptionsMenu()创建。如果您不想要任何选项菜单,请避免实施 onCreateOptionsMenu()。