Fragment 视图重绘问题
2016-04-26 22:45
351 查看
android 中在使用到Tab和ViewPager+Fragment的时候,切换tab会导致view重绘,这样用户体验极差,每次都要重新加载页面,有个办法就是判断根View,根据rootView的状态来判断是否重新加载View
在销毁Fragment的时候,在onDestroyView里面移除
这是防止页面重绘,关于Fragment的页面数据切换缓存,Viewpager有一个方法可以用来缓存数据
@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { if (cacheView == null) { cacheView = inflater.inflate(R.layout.fragment_page, container, false); assignViews(cacheView); } return cacheView; }
在销毁Fragment的时候,在onDestroyView里面移除
@Override public void onDestroyView() { super.onDestroyView(); //把Fragment的RootView从ViewPager中remove //缓存的cacheView需要判断是否已经被加过parent, 如果有parent,需要从parent删除 if (null != cacheView) { ((ViewGroup) cacheView.getParent()).removeView(cacheView); } }
这是防止页面重绘,关于Fragment的页面数据切换缓存,Viewpager有一个方法可以用来缓存数据
viewPager.setOffscreenPageLimit(5);
参数是缓存页面的数量
相关文章推荐
- hdu 1045 要求全部逐一搜索完的深搜
- javadoc解决中文乱码问题
- 【1】Zabbix添加Item、Application
- 反向代理的有趣用法
- 最好不过的IOS开发者面试题---纪念离我们远去的MRC模式
- UVALive 3135 Argus(优先队列)
- 使用指针进行数组内的数字调换
- 几个常用存储引擎的特点
- JavaScript基础学习(四)—Object
- 实现动态顺序表
- hdu 1269 迷宫城堡 强连通分量分解
- ios单例模式的几种写法
- Java程序员的日常—— Properties文件的读写
- LintCode:平衡二叉树
- poj 3274 哈希查找(黄金平衡)
- HDU 5239 Doom
- Redis 和Memcache的区别
- Runner站立会议06
- dll笔记
- Windows文件操作