android-删除一个片段,在我的情况下不会放
作者:互联网
假设我有两个片段:firstFragment和secondFragment
我知道我可以通过以下方式替换片段:
fragmentTransaction.replace(R.id.fragment_placeholder, firstFragment);
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.commit();
就像上面的代码所示,我没有将上面的firstFragment添加到堆栈中.
然后,我用secondFragment替换,但是这次,我将secondFragment添加到了堆栈中:
fragmentTransaction.replace(R.id.fragment_placeholder, secondFragment);
fragmentTransaction.addToBackStack(null); //add to back stack
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
fragmentTransaction.commit();
在我的手机屏幕上,它现在显示secondFragment.
我的问题是,如何删除未添加到堆栈的firstFragment?
解决方法:
分离碎片后,碎片将被销毁.为了确保片段仍在布局中,可以使用“层次结构查看器”透视图.要使用层次结构查看器,您必须使用仿真器或有根设备. (http://developer.android.com/guide/topics/fundamentals/fragments.html#Creating)
但是,如果您使用android-support-v4.jar支持1.6及更高版本,请确保您未在xml布局中定义任何片段.使用android-support-v4.jar时,无法删除xml-layout中的片段.如果您使用的片段会一直显示(例如导航),请按此操作
编辑:替换也应删除firstfragment. Replace将用给定的片段替换容器内的所有子代.
标签:android-fragments,android-layout,android-intent,android-emulator,android 来源: https://codeday.me/bug/20191201/2082098.html