Android之ViewPager延迟加载的另类实现
来源:互联网 发布:满记甜品什么好吃知乎 编辑:程序博客网 时间:2024/05/05 08:22
本文主要是记录ViewPager使用中第一次加载过多元素的解决方法
我在使用ViewPager时是单独使用的,没有跟诸如Fragment等连用
思路:先 隐藏要预加载的界面,延时一段时间,比如1秒,在设置预加载的界面显示
需要预加载的界面跟参数设置有关系
ViewPager.setOffscreenPageLimit(int) 这个方法的参数默认是 1 ;
这个方法的意思是设置当前显示也的左右各预先加载几个页面;
打个比方,我们设置参数为 2 ,当前显示 第 5 页 ,则 第 3,4,6,7页的元素都已加载好
如果设置为0 ,是没有效果的,源码里强制了至少是 1;
List<View> mPagers = new ArrayList<>();// init mPages...int mCurrentPage = 4; // 显示第四页 mViewPager = (ViewPager) findViewById(R.id.viewpager); mViewPager.setAdapter(new ViewPagerAdapter(mPagers));//mViewPager.setOffscreenPageLimit(2);// 0 is useless mViewPager.addOnPageChangeListener(pageChangeListener); mViewPager.setOverScrollMode(View.OVER_SCROLL_NEVER);if(mCurrentPage == 0){mPagers.get(mCurrentPage + 1).setVisibility(View.INVISIBLE);}else if(mCurrentPage == mViewCtrl.getMenuData().dynamic.size() - 1){mPagers.get(mCurrentPage - 1).setVisibility(View.INVISIBLE);}else {// 左边和右边的消失mPagers.get(mCurrentPage - 1).setVisibility(View.INVISIBLE);mPagers.get(mCurrentPage + 1).setVisibility(View.INVISIBLE);} mViewPager.setCurrentItem(mCurrentPage);
上面这段代码,mPagers里存放页面,if 判断里面,目的是把当前显示页面的左右两边 INVISIBLE
然后 mViewPager 真是显示出来时,延时一下,把隐藏的界面显示出来
mHandler.postDelayed(new Runnable() {@Overridepublic void run() {if(mCurrentPage == 0){mPagers.get(mCurrentPage + 1).setVisibility(View.VISIBLE);}else if(mCurrentPage == mViewCtrl.getMenuData().dynamic.size() - 1){mPagers.get(mCurrentPage - 1).setVisibility(View.VISIBLE);}else {// 左边和右边的消失mPagers.get(mCurrentPage - 1).setVisibility(View.VISIBLE);mPagers.get(mCurrentPage + 1).setVisibility(View.VISIBLE);}}}, 1000);我这边测试效果还是可以的
0 0
- Android之ViewPager延迟加载的另类实现
- android UI 优化之<viewstub>实现View的延迟加载
- Android 如何控制viewpager下的fragment的延迟加载
- android中使用viewpager延迟加载页面
- android viewpager中的fragment 延迟加载数据
- Android之Viewpager+Fragment实现懒加载
- Android之Viewpager+Fragment实现懒加载
- Android之ViewPager+Fragment实现懒加载
- Android ViewPager动态加载数据的实现
- ViewPager延迟加载
- Activity+Viewpager 延迟加载
- 探究ViewPager延迟加载
- ViewPager+Fragment延迟加载
- ViewPager+Fragment 延迟加载
- ViewPager+Fragment延迟加载
- ViewPager+Fragment延迟加载
- Android优化之ViewPager的懒加载
- Android之viewstub用法详解及实现延迟加载
- 查询外键关联表(父表)
- css水平垂直居中设置
- 云客Drupal8源码分析之缓存上下文CacheContext
- 什么是主从复制呢?
- 2016年度总结——在路上
- Android之ViewPager延迟加载的另类实现
- MyBatis日志log4j异常ERROR Could not instantiate class [org.apache.ibatis.session.AutoMappingUnknownColum
- 域名做泛解析
- Scapy 学习笔记(一)
- Java泛型详解,通俗易懂只需5分钟
- Android初学者 关于LogCat显示不出制定数据的问题
- 环境配置与安装rabbitMq
- Python中模块导入时遇到的问题
- spring的启动过程04-bean后置处理器