2014-12-03 84 views
3

我正在使用导航抽屉 - android studio 4+的项目框架 - 并且在菜单中有两个片段。片段替换后仍然会显示动作项目

其中包含android.support.v4.view.ViewPager的片段。 ViewPager包含两个片段,其中一个包含菜单。当我使用手势在viewpager菜单中更改片段时,显示和消失取决于现在哪个片段可见 - 所有内容都是正确的。

现在流什么是错的:

如果我打开第一个片段从抽屉式导航和Swype输入与菜单片段,然后使用导航抽屉菜单切换到第二个片段仍然会出现 - 为什么?我不明白。

编辑:

如果我添加

setHasOptionsMenu(true); 

@Override 
public void onPrepareOptionsMenu(Menu menu) { 
    menu.clear(); 
    super.onPrepareOptionsMenu(menu); 
} 

到片段不应该有菜单,然后问题消失了,但我仍然认为根源在别处以上解决方案很脏。

回答

1

我知道我迟到了2年才回答,但这可能会给面临同样问题的程序员带来好处。我有同样的问题,我只需在OnCreateView()调用

setHasOptionsMenu(true) 

解决它。

这将确保新片段具有其自己的选项菜单,然后可以使用onCreateOptionsMenu()创建。如果您不想有任何选项菜单,请避免实施onCreateOptionsMenu()