由于某种原因,我的片段显示属于不同片段的菜单项。片段显示错误的菜单项
我有一个自定义的回堆的单个活动,以保持使用正确的流程:
Map<Integer, List<Fragment>> fragmentStack = new HashMap<>();
这样,每一个“标签”有它自己的堆栈中。 我的片段之间具有开关:
getSupportFragmentManager().beginTransaction()
.replace(R.id.container, fragment)
.commitNow();
的片段保持在地图,所以切换到现有的片段,当我使用它已经初始化视图。
有时,当我从一个片段切换到另一个片段时,尽管在第二个片段上调用了 onCreateOptionsMenu,但第二个片段显示了先前在堆栈中创建的片段的菜单项。
我该如何克服这种不需要的行为?
导致此行为的操作:
1.从第一个标签开始。在关键字0处初始化映射,List<fragment>
带有一个片段,称为A.然后显示此片段。 (片段A有菜单项)
2.导航到第二个选项卡。在密钥1处初始化映射,List<fragment>
带有一个片段,称为B,显示此片段(替换片段A)。片段B也有菜单项。
3.导航回到第一个选项卡。使用前一个片段A,包括它已经初始化的视图(不会膨胀一个新视图)。
4.点击导航到一个新的片段C停留在同一个选项卡上。片段C被添加到片段列表中,在Map的关键字0下。片段C没有菜单项目。
5.导航到第二个选项卡。显示之前的片段B,但是具有片段A!的菜单项
你在ViewPager中使用片段? – rupinderjeet
@rupinderjeet不,我正在使用底部导航视图 –