[英]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.