簡體   English   中英

兩個片段之間的導航

[英]navigation between 2 fragments

我的應用程序中有2個片段A和B. 主要活動從片段A開始。按下按鈕,我用片段B替換它。

FragmentManager fm = getSupportFragmentManager();
B_Fragment pfrag = new B_Fragment();
pfrag.setArguments(args);
fm.beginTransaction().replace(R.id.frag_container, pfrag)
        .addToBackStack("A_Fragment").commit();

現在在片段B中我按下一個按鈕,用片段A替換它:

fm.popBackStack();
fm.beginTransaction().addToBackStack("B_fragment").commit();

片段A被成功推送並從堆棧中彈出,其中片段B不是。 每次B_fragment被銷毀並創建一個新的。 那么有人可以告訴我我缺少什么以及如何將片段B推入堆棧並同時彈出A。

FragmentManager fm = getSupportFragmentManager();
B_Fragment pfrag = new B_Fragment();
pfrag.setArguments(args);
fm.beginTransaction().replace(R.id.frag_container, pfrag).commit();

Fragment B ,為什么不用Fragment A替換它

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.pnlLeft, details);
ft.commit();

popBackStack不加載最后一個片段,它通常用於彈出整個堆棧:

fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

在加載另一個片段之前

beginTransaction()
replace() Or add()
commit()

按下the button in Fragment B ,請嘗試以下代碼。 這將重新加載entire fragment

FragmentManager fm = getSupportFragmentManager();
if (fm.getBackStackEntryCount() > 0) {
    fm.popBackStack();
} 

暫無
暫無

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

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