繁体   English   中英

删除未放在backstack上的碎片

[英]Remove fragments that are not put on backstack

我的简单布局只有一个片段占位符:

<FrameLayout
   android:id="@+id/fragment_placeholder"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
  />

我首先在这个占位符中添加第一个片段

fragmentTransaction.add(R.id.fragment_placeholder, firstFragment, "first"); //I did not put to backstack

我有第二个片段 ,它取代上面的片段并将其放回到堆栈

FragmentManager fragMgr = getSupportFragmentManager();
FragmentTransaction fragTrans = fragMgr.beginTransaction();

//initialize an fragment instance
Fragment secondFragment = initSecondFragment(); 

//replace with the fragment 
fragTrans.replace(R.id.fragment_placeholder, secondFragment, "second");

//Add fragment transaction to back stack
fragTrans.addToBackStack(null);

//commit the transaction
fragTrans.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragTrans.commit();  

后来我有一些片段替换了以前的片段,但没有放在后台

似乎那些没有放在靠背上的片段总是会在屏幕上显示,后面的按钮按下对它们没有影响。

那么, 如何在我的应用程序中找到那些不在backstack上的片段 ,以及如何从屏幕上删除它们?

如何在我的应用程序中找到那些不在backstack上的片段

FragmentManager上调用findFragmentById()findFragmentByTag()

如何从屏幕上删除它们?

remove()FragmentTransaction一起使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM