Fragment 出栈的方法popBackStack

简介: Fragment 出栈的方法popBackStack

Fragment弹出回退栈的方法有以下:


void popBackStack()


弹出堆栈中的一个并且显示,类似按下返回键的操作;


popBackStack(String tag,int flags)


tag可以为null或者相对应的tag,flags只有0和1(POP_BACK_STACK_INCLUSIVE)两种情况


如果tag为null,flags为0时,弹出回退栈中最上层的那个fragment。


如果tag为null ,flags为1时,弹出回退栈中所有fragment。


如果tag不为null,那就会找到这个tag所对应的fragment,flags为0时,弹出该

fragment以上的Fragment,如果是1,弹出该fragment(包括该fragment)以

上的fragment。


popBackStack(int id,int flags)


与popBackStack(String tag,int flags)类似,找到id代表的fragment,然后执行一样的操作


popBackStackImmediate(int id, int flags)


popBackStackImmediate(String name, int flags)


popBackStackImmediate()


这几个方法类似以上的方法,只不过这几个在内部调用时会立即弹出

重要的东西来了!!!!


很多时候我们都以为fragment入栈后,譬如 依次入栈 fragment A ,B ,C ,D,

然后弹出B fragment,在回退栈里并不是我们想象的只剩下 D C A ,而是D C null

A,所以使用FragmentManager.getFragments(),然后拿List< Fragment >里的

对象时特别要注意判空。


如下图:

目录
相关文章
|
Java 程序员 Shell
singleTop启动模式真的可以防止多次打开栈顶的Activity么?
开发过程中我们经常会遇到各式各样的bug,比如说测试小姐姐告诉我们,由于无操作,某个按钮她`快速点击了两次`(或者由于卡顿之类的延迟),`打开了两个详情页`,希望把这个`禁止掉`,只让打开一个详情页。
RecyclerView.notifyItemRemoved导致的数组下标越界问题
我们一般在RecyclerView列表中移除某条Item时会调用 notifyItemRemoved 方法,其还附带了相应的移除特效。
158 0
栈 入栈 出栈 获取栈顶元素
栈 入栈 出栈 获取栈顶元素
109 0
addTextChangedListener在fragment中多次执行问题
文章同步发布到CSDN:http://blog.csdn.net/ling9400/article/details/60323283 转载请注明出处:http://blog.
1097 0
Activity往另外一个Activity传值,Fragment获取另外一个Activity里面的值。
在oneActivity中实现跳转到MainActivity        //intent 用来跳转另外一个MainActivity,bundle传值到MainActivity         Intent MainActivity = new Intent();         MainActivity .
1256 0
Fragment调用Activity
  public void onClick(View arg0) {                                Intent intent = new Intent();                                intent.
820 0