码迷,mamicode.com
首页 > 其他好文 > 详细

ViewPager和Fragment的综合使用的预加载机制

时间:2017-01-17 00:19:24      阅读:228      评论:0      收藏:0      [点我收藏+]

标签:hint   screen   使用   view   http   预览   方法   左右   方案   

混合使用的适配器: FragmentPagerAdapter   FragmentStatePagerAdapter(Fragment数据动态性较大、占用内存较多的时候)

ViewPager的预加载:ViewPager 会默认预先初始化当前页面的左右相邻页面,它的预先加载页面数量默认是 1 ,

                  并且是private的不可以修改,这样做的好处是左右滑动会比较流畅。

懒加载:即让ViewPager预加载初始化UI,而具体一些数据,网络访问请求等延迟加载。这是靠Fragment里有一个

          setUserVisibleHint(boolean isVisibleToUser)的方法,我们可以在这个方法里做判断,当其True可见时

         (即切换到某一个具体Fragment)时才去加载数据,这样可以省流量。

可以解决的问题:

 5 个Fragment里有一个Fragment是有SurfaceView的,这样造成的问题就是,我ViewPager滑动到其相邻页面时,含有SurfaceView的页面就会被预先初始化,然后SurfaceView就开始预览了,只是我们看不到而已。同样的,当我们从含有SurfaceView的页面滑倒其相邻的页面时,SurfaceView并不会回调其surfaceDestory方法。于是这给我造成了极大的困扰。

 setOffscreenPageLimit(int limit),来设置ViewPager预加载的数量

 viewPager的成员变量DEFAULT_OFFSCREEN_PAGES 这里就定义了默认值是1, 所以网上 有种解决方案 说调用ViewPager的setOffscreenPageLimit(int limit),

技术分享

 

ViewPager和Fragment的综合使用的预加载机制

标签:hint   screen   使用   view   http   预览   方法   左右   方案   

原文地址:http://www.cnblogs.com/Oldz/p/6291239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!