Fragment销毁时replace和add两个方法的区别

如题所述

1.首先打开,默认选中的是第一个tab。
2.切换到tab2,并把tab1 hide掉;
3.再切回到tab1,并不会触发tab1对应fragment的任何生命周期;
4.然后home键进入后台,我在activity的onPause()中手动对IndexFragment赋空,模拟长时间后台,系统销毁了该引用。
IndexFragment=null;

5.再次启动,其实tab1 的fragment实例在内存中还在,只是他的引用被销毁了。
6.再切到tab2,这里其实是先把tab1的hide,在show tab2,但是tab1 的fragment引用为空,所以无法hide,就出现了tab2叠在tab1上的花屏情况。
7.再切到tab1,tab1就会重复创建对象。
温馨提示:内容为网友见解,仅供参考
无其他回答

Fragment销毁时replace和add两个方法的区别
层,而add方式,这个FrameLayout其实有2层。但是这种方式的缺点是:每次replace会把生命周期全部执行一遍,如果在这些生命周期函数 里拉取数据的话,就会不断重复的加载刷新数据。那么最合适的处理方式是这样的:1.在add的时候,加上一个tab参数 transaction.add(R.id.content, IndexFragment,”Tab1″);2...

Fragment销毁时replace和add两个方法的区别
使用replace方式,虽然这种方式会避免上述的bug,但也是重复创建了对象。因为replace方式,对应的FrameLayout只有一 层,而add方式,这个FrameLayout其实有2层。但是这种方式的缺点是:每次replace会把生命周期全部执行一遍,如果在这些生命周期函数 里拉取数据的话,就会不断重复的加载刷新数据。

Fragment销毁时replace和add两个方法的区别
replace是替换当前页面,add仅仅是把Fragment加入到FragmentManager里

Fragment add与replace的区别,以及对Fragment的生命周期影响
首先,add操作是将一个新的Fragment添加到Activity的布局中,如同在舞台上添加一个新的道具。它不会改变现有的Fragment,而是在当前的Fragment栈中添加一个新的栈顶。这使得新添加的Fragment可以与当前Fragment并存,各自有自己的生命周期管理。相比之下,replace操作则是将当前的Fragment从栈顶移除,然后添加...

Fragment销毁时replace和add两个方法的区别
fragment使用hide和show 不会再经过一次oncreate 等生命周期, 即不会销毁再创建 而使用replace 每次都会销毁然后重新 oncreate 创建

Fragment销毁时replace和add两个方法的区别
使用 FragmentTransaction 的时候,它提供了这样两个方法,一个 add , 一个 replace ,对这两个方法的区别一直有点疑惑。我觉得使用 add 的话,在按返回键应该是回退到上一个 Fragment,而使用 replace 的话,那个别 replace 的就已经不存在了 ...

Fragment销毁时replace和add两个方法的区别
\/\/ 隐藏当前的fragment,add下一个到Activity中 transaction.hide(from).add(R.id.content_view, to).commit();} else { \/\/ 隐藏当前的fragment,显示下一个 transaction.hide(from).show(to).commit();} } } 这个是我项目用到的,你可以参考下,其中from是当前页面,To是你要切换到的页面。

android碎片的replace和add,hide,show的区别
add是把一个fragment添加到一个布局上,不清空原有的fragment。而replace则添加而且会清空原有的fragment。hide、show是控制fargment隐藏和显示的。

Fragment add 和replace的区别
add仅仅是把Fragment加入到FragmentManager里

Android组件之Fragment(一)---基础知识与运用
您可以理解为它就是一个类而已,只不过里面包含了View,并且与activity的生命周期进行了关联。 2.动态加载与静态加载相对来说,建议使用动态加载,静态加载固定在了xml文件中,永远不变。 3.replace的fragment如果不在前台,会执行所有生命周期,反之不会执行任何生命周期方法;hide+show生命周期并不...

相似回答
大家正在搜