由於某種原因,我的片段顯示屬於不同片段的菜單項。片段顯示錯誤的菜單項
我有一個自定義的回堆的單個活動,以保持使用正確的流程:
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不,我正在使用底部導航視圖 –