ViewPager中Fragment的重复创建、复用问题
在ViewPager中的Fragment的生命周期 随着页面的切换 当前的展示页相邻的页面生命周期一直在变化
一开始 刚进入Activity时候,ViewPager默认初始化好前两个Fragment(消息和任务)
消息 ->任务
05-09 14:47:39.593 31509-31509/tyh.com.tablayout E/TYH: 团队onAttach 05-09 14:47:39.593 31509-31509/tyh.com.tablayout E/TYH: 团队onCreate 05-09 14:47:39.593 31509-31509/tyh.com.tablayout E/TYH: 团队onCreateView 05-09 14:47:39.603 31509-31509/tyh.com.tablayout E/TYH: 团队onStart 05-09 14:47:39.603 31509-31509/tyh.com.tablayout E/TYH: 团队onResume
任务 ->团队
5-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 消息onPause 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 消息onStop 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 消息onDestroyView 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 部门onAttach 05-09 14:55:26.932 31509-31509/tyh.com.tablayout E/TYH: 部门onCreate 05-09 14:55:26.942 31509-31509/tyh.com.tablayout E/TYH: 部门onCreateView 05-09 14:55:26.942 31509-31509/tyh.com.tablayout E/TYH: 部门onStart 05-09 14:55:26.942 31509-31509/tyh.com.tablayout E/TYH: 部门onResume
团队 ->部门
05-09 14:57:18.371 31509-31509/tyh.com.tablayout E/TYH: 任务onPause 05-09 14:57:18.371 31509-31509/tyh.com.tablayout E/TYH: 任务onStop 05-09 14:57:18.371 31509-31509/tyh.com.tablayout E/TYH: 任务onDestroyView
部门 ->团队
05-09 15:00:50.918 31509-31509/tyh.com.tablayout E/TYH: 任务onCreateView 05-09 15:00:50.918 31509-31509/tyh.com.tablayout E/TYH: 任务onStart 05-09 15:00:50.918 31509-31509/tyh.com.tablayout E/TYH: 任务onResume
你会发现 当 Fragment完成onCreate之后再去切换的时候 只会执行onCreateView和onDestroyView方法不会再去onCreate
那么如何避免重复的创建和销毁呢 解决方案如下:
方案一(不推荐):
mViewPager.setOffscreenPageLimit(4);
方案二(推荐):
@Overridepublic View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if(view==null){view = inflater.inflate(R.layout.contentfragment,container,false); tvContent = (TextView) view.findViewById(R.id.tv_content); String string = getArguments().getString(KEY); tvContent.setText(string); tvContent.setTextColor(Color.BLUE); tvContent.setTextSize(30); } return view;}
@Overridepublic void onDestroyView() { super.onDestroyView(); if(view!=null){view.getParent().remove(view); }}
如此当重新创建Fragment的时候就会复用之前创建好的View不会重复创建
转载于:https://www.cnblogs.com/bimingcong/p/10276450.html
ViewPager中Fragment的重复创建、复用问题相关推荐
- android_基础_ViewPager中Fragment的重复创建、复用问题
转载自:https://www.cnblogs.com/bimingcong/p/10276450.html ViewPager中Fragment的重复创建.复用问题 在ViewPager中的Frag ...
- FragmentManager中Fragment的重复创建、复用问题
当我们在Activity中使用 Fragment可以用FragmentManager去添加到对应个ViewGoup中使用 FragmentManager fragmentManager = getSu ...
- ViewPager中Fragment的生命周期和FragmentPageAdapter与FragmentStatePageAdapter对其的影响
首先,我们创建一个Activity和一个Fragment,并在Fragment的各个生命周期打好日志,并把Fragments丢进Viewpager,这里我们往Viewpager里丢了3个Fragmen ...
- android viewpager fragment 生命周期,ViewPager中Fragment的生命周期
网上有很多Fragment生命周期的帖子,但是看了一下,没有找到自己想了解的东西,于是决定自己动手体验一下这个生命周期.主要想了解以下几个问题: Activity中的Fragment的生命周期 Vie ...
- android 百度定位开启后fragment 不显示,解决Android百度地图MapView在ViewPager中Fragment切换黑屏问题...
百度地图切换界面出现黑屏原因是地图退出释放内存时渲染出现bug导致.因为是百度地图本身内部bug.所以我们无法从本质上去修复这个bug android:id="@ id/dynamics_m ...
- android tab pageview,Android Fragment在ViewPager中到底经历了什么?
2017年05月30 最后的懒加载写的不好,推荐请叫我大苏同学写的Fragment懒加载博客, [Android]再来一篇Fragment的懒加载(只加载一次哦) 在大苏同学的博客评论里,看到了另一个 ...
- Fragment在ViewPager中的生命周期
转载自 hdszlk的博客 原文链接:https://www.2cto.com/kf/201607/530540.html 1.一直以来的疑问 Fragment在ViewPager到底经历了哪 ...
- 友盟页面统计 - 关于Viewpager中的Fragment的生命周期
Activity和Fragment各自理论上的生命周期 Activity的生命周期是较为经典也最清晰的,在此不表: Fragment从出现到广泛运用也有一段时间了,其标准生命周期也仅比Activity ...
- android viewpager 嵌套fragment,Android ViewPager+Fragment多层嵌套(使用问题处理)
之前写了Android ViewPager+Fragment(使用问题处理),封装了一个BaseFragment,对于简单使用ViewPager+Fragment而言,是没有问题的. 不过,ViewP ...
最新文章
- struts1生成验证码
- IT 巡检内容、方法大全
- 搭建TXManager分布式事务协调者
- 登陆工行网上银行报60058017错误及输入正确网银密码提示密码不正确
- 数学家告诉你什么时候结束单身?!
- 利用PowerShell Empire实现Word文档DDE攻击控制(简单没啥用)
- [BZOJ3676][Apio2014]回文串
- 计算机本地无法连接失败怎么办,本地连接连不上怎么办?本地连接连不上解决方法...
- Unity之如何使用夜神模拟器logcat
- 土壤有机质空间分布数据
- JAVA项目开发之文档篇
- [读书笔录]解析卷机神经网络(魏秀参)——第二章
- c语言语法 英语,英语干货:英语语法基础知识大全
- VScode退出全屏
- Inpaint9.1最新网页版下载及inpaint怎么去水印教程
- 86.3 安全性问题 xss、DDOS、CC、sql注入 攻击等
- 3分钟教会你们如何连接CentOS 7外网
- 做需求分析师的几点困惑
- vue、Dropdown 下拉菜单、Dropdown属性事件、vue Dropdown 全部下拉菜单、vue Dropdown 全部属性事件
- win7系统提示非正版 该如何激活