viewpage中对于fragment的生命周期
来源:互联网 发布:蔬菜报价软件 编辑:程序博客网 时间:2024/06/05 16:48
1.众所周知,fragment的生命周期如下:onattch-oncreat-oncreatview-onactivitycreated-onstart-onresume-onpause-onstop-ondestroyview-ondestroy-ondetach.
2.那么问题来了,在切换过程中fragment的生命周期如何。
例子:三个fragment,默认的缓存方式
首先,先进来吧:
09-08 14:51:57.469 23986-23986/com.yosemite.testframeani E/Fragment1: onAttach09-08 14:51:57.469 23986-23986/com.yosemite.testframeani E/Fragment1: onCreate09-08 14:51:57.470 23986-23986/com.yosemite.testframeani E/Fragment2: onAttach09-08 14:51:57.470 23986-23986/com.yosemite.testframeani E/Fragment2: onCreate09-08 14:51:57.470 23986-23986/com.yosemite.testframeani E/Fragment1: onCreateView09-08 14:51:57.478 23986-23986/com.yosemite.testframeani E/Fragment1: onActivityCreated09-08 14:51:57.478 23986-23986/com.yosemite.testframeani E/Fragment1: onStart09-08 14:51:57.478 23986-23986/com.yosemite.testframeani E/Fragment1: onResume09-08 14:51:57.480 23986-23986/com.yosemite.testframeani E/Fragment2: onActivityCreated09-08 14:51:57.480 23986-23986/com.yosemite.testframeani E/Fragment2: onStart09-08 14:51:57.480 23986-23986/com.yosemite.testframeani E/Fragment2: onResume
可以看到,这是预加载了前两个fragment,第三个没有被加载。
再切换到第二个fragment上看下:
09-08 14:54:16.855 23986-23986/com.yosemite.testframeani E/Fragment3: onAttach09-08 14:54:16.855 23986-23986/com.yosemite.testframeani E/Fragment3: onCreate09-08 14:54:16.855 23986-23986/com.yosemite.testframeani E/Fragment3: onCreateView09-08 14:54:16.859 23986-23986/com.yosemite.testframeani E/Fragment3: onActivityCreated09-08 14:54:16.860 23986-23986/com.yosemite.testframeani E/Fragment3: onStart09-08 14:54:16.860 23986-23986/com.yosemite.testframeani E/Fragment3: onResume
可以看到,第三个fragment开始被加载进来了,虽然第三个页面是不可见的。
再切换到第三个页面吧:
09-08 14:55:15.453 23986-23986/com.yosemite.testframeani E/Fragment1: onPause09-08 14:55:15.453 23986-23986/com.yosemite.testframeani E/Fragment1: onStop09-08 14:55:15.454 23986-23986/com.yosemite.testframeani E/Fragment1: onDestroyView可以看到,第一个页面消失了,但是并没有和activity取消关联
那再点击到第二个页面吧:
09-08 14:56:29.046 23986-23986/com.yosemite.testframeani E/Fragment1: onActivityCreated09-08 14:56:29.046 23986-23986/com.yosemite.testframeani E/Fragment1: onStart09-08 14:56:29.046 23986-23986/com.yosemite.testframeani E/Fragment1: onResume可以看到,第一个页面又被展示在前台了。
那就最后再切换到第一个页面吧:
09-08 14:57:52.182 23986-23986/com.yosemite.testframeani E/Fragment3: onPause09-08 14:57:52.182 23986-23986/com.yosemite.testframeani E/Fragment3: onStop09-08 14:57:52.182 23986-23986/com.yosemite.testframeani E/Fragment3: onDestroyView第三个页面被销毁了
结果大概就是,viewpage在滑动中,只会保留,当前显示的fragment左右两侧的两个fragment,其他的全部被ondestroyview了。
阅读全文
0 0
- viewpage中对于fragment的生命周期
- viewpage+fragment的生命周期问题
- Android中Viewpage+Fragment的简单实现
- ViewPage中Fragment替换失败的解决方法
- ViewPage+Fragment的使用
- Fragment + ViewPage的使用
- Android中ViewPage+Fragment的预加载的取消
- Viewpage+Fragment的组合使用
- ViewPage+Fragment的使用例子
- ViewPage+Fragment的使用例子
- ViewPage+Fragment的使用例子
- viewpage+fragment的简单实现
- TabLayout+ViewPage+Fragment的使用
- Android viewpage+fragment 的更新
- viewpager 中fragment 的生命周期
- ViewPager中Fragment的生命周期
- 笔记:fragment重复加载和fragment在viewpage中预加载的问题
- viewpage + fragment
- 猫哆哩的前端学习路线--开篇
- NGINX修改配置文件无效
- 抽象类与接口的区别
- JavaScript内存泄露的4种方式及如何避免
- android view自带边距的对齐问题
- viewpage中对于fragment的生命周期
- react(三)组件内部状态state使用方式
- ios录音功能实现
- hibernate的资料汇总
- ROS如何入门
- solr学习之路2---Field和FieldType的介绍
- pycharm快捷键
- python链接Mysql读取中文乱码
- 任务繁忙的ACM协会