我的简单布局只有一个片段占位符:
<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();
后来我有一些片段取代了之前的片段,但是没有放在后台上。
似乎那些没有放在靠背上的片段总是会在屏幕上显示,后面的按钮按下对它们没有影响。
那么,如何在我的应用中找到那些不在后台的片段,以及如何从屏幕上删除它们?
答案 0 :(得分:1)
如何在我的应用程序中找到那些不在backstack上的片段
在findFragmentById()
上致电findFragmentByTag()
或FragmentManager
。
如何从屏幕上删除它们?
将remove()
与FragmentTransaction
一起使用。