簡體   English   中英

在SlidingDrawer中使用后退按鈕處理多個片段嗎?

[英]Back Button Handling in SlidingDrawer for mulitple fragment?

我已經搜索了很多解決方案,但是找不到我想要的東西。我的應用程序中有一個滑動抽屜,現在抽屜中的選項是:

1.
2. 朋友
3. 團體等等

現在,對於每個選項,我都有很多片段。像家庭朋友選項一樣,片段就像
Home->fragment1->fragment2->fragment3
Friends->fragment4->fragment5

情況1:現在當我從首頁轉到frament1,然后轉到frament2,再單擊Friends,然后轉到fragment4.Now,當我按“ Back Button它也顯示了Home的片段。但是我想將“ Back按鈕限制為只顯示它的選項片段,即當我在Friends時,它不會使用“后退”按鈕顯示“ Home的片段。 如何在滑動抽屜活動中執行此操作,以及在相應的片段中執行什么操作?

情況2:我在應用程序中看到的是,當我按下“后退”按鈕時,有時可以看到我的片段在另一個片段上,即我可以看到兩個片段混合在一起。 為什么不完全替換碎片?

現在我在SlidingDrawer實現了什么:

Fragment fragment = new HomeFragment(); // i have this initialized previously for every item of listview
FragmentManager fragmentManager = getFragmentManager();
        fragmentManager.beginTransaction()
                .replace(R.id.frame_container, fragment).commit();
        fragmentManager.beginTransaction().addToBackStack(null);


和我從該片段轉到另一個片段的操作。例如:在HomeFragment ,我做了另一個片段:

FragmentManager fragmentManager = getFragmentManager();
                Fragment fragment = new FriendsStatusFragment();
                fragmentManager.beginTransaction().replace(R.id.frame_container,fragment).commit();


在某些Fragment中,此方法很好用,但有時case 2會出現問題,並且后退按鈕無法按照case 1提到的我的意願進行操作。任何人都可以向我展示Path嗎?

為確保在“朋友”中時不返回到Home中的片段,請在加載“朋友”片段(當您切換“選項”時)之前調用popBackStack ,以清除后堆棧中的所有片段。

FragmentManager fragmentManager = getFragmentManager();
Fragment fragment = new FriendsStatusFragment();
popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
fragmentManager.beginTransaction().replace(R.id.frame_container,fragment).commit();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM