Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 移除未放在背衬上的碎片_Android_Android Layout_Android Intent_Android Emulator_Android Fragments - Fatal编程技术网

Android 移除未放在背衬上的碎片

Android 移除未放在背衬上的碎片,android,android-layout,android-intent,android-emulator,android-fragments,Android,Android Layout,Android Intent,Android Emulator,Android Fragments,我的简单布局只有一个片段占位符: <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 p

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

<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();  
后来我有一些片段替换了前面的片段,但是没有放在backbackback上

似乎对于那些未放在backback上的片段将始终显示在屏幕上,按下back按钮对它们没有影响

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

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

FragmentManager
上调用
findFragmentById()
findFragmentByTag()

如何从屏幕上删除它们


使用
remove()
FragmentTransaction

如何检查片段是否添加到Backstack???@KK_07k11A0585:这实际上属于单独的堆栈溢出问题。也就是说,如果要将标记传递给
addToBackStack()
,则可以通过
FragmentManager
上的
getBackStackEntry()
等方法对后堆栈条目进行迭代,以找到具有所需标记的条目。片段本身不在后堆栈上;碎片交易是,我知道了。但我有以下场景\n其中有3个片段FragmentA1、FragmentA2、FragmentA3。我在backstack中添加了FragmentA1和FragmentA2,但没有添加FragmentA3。所以,如果我从FragmentA3按下back按钮,那么它将完成FragmentA2,并覆盖FragmentA1中的FragmentA3。请帮我把这个分类issue@KK_07k11A0585:请随意打开一个新的StackOverflow答案,在那里您可以解释您的问题,看看是否有人可以提供帮助。我遇到了完全相同的问题,现在被称为问题:和谷歌问题: