android:ViewPager的无限多页数的设置
来源:互联网 发布:三网合一网络箱 编辑:程序博客网 时间:2024/05/18 01:29
比如日历中,就会需要无限多页数的左右滑动。如何实现?难道要准备一个无限长的List<ItemView>
?那样会太占内存了。而且,也不可行。
改进如下:
可以准备一个无限长的List<ItemBean>
里面存放的是每页需要显示的数据。而ItemView
不要去管,在预加载中去创建,在回收中去移除即可。
详见如下示例代码:
private void setViewPager() { ViewPager vp = (ViewPager) findViewById(R.id.bc_vp); NoPager adapter = new NoPager(); vp.setAdapter(adapter); int count = adapter.getCount(); int index; if (count % 2 == 0) { index = count / 2; } else { index = count / 2 + 1; } Logger.d("count = " + count + " , index = " + index); vp.setCurrentItem(index); } private class NoPager extends PagerAdapter { @Override public int getCount() { // Integer.MAX_VALUE == 2147483647 return Integer.MAX_VALUE; // 1. 无限长搞定了 } @Override public boolean isViewFromObject(View view, Object object) { return view == object; } @Override public Object instantiateItem(ViewGroup container, int position) { View child = LayoutInflater.from(get()).inflate(R.layout.content_item, container, false); // 2. 预加载中去创建`ItemView` TextView tv = (TextView) child.findViewById(R.id.tv_content_item); tv.setText("page " + position); if (child.getParent() != container) { container.addView(child); } return child; } @Override public void destroyItem(ViewGroup container, int position, Object object) { container.removeView((View) object); // 3. 回收方法去移除`ItemView` } }
阅读全文
1 0
- android:ViewPager的无限多页数的设置
- ViewPager设置缓存页数
- android最简单的ViewPager无限翻页
- android 打造真正的无限循环viewpager
- Android 无限轮播ViewPager的实现
- 无限循环的ViewPager
- 无限滑动的ViewPager
- 无限滑动的viewpager
- 无限循环的Viewpager
- viewpager的无限循环方法
- ViewPager的无限轮播
- Viewpager的无限轮播
- viewpager的无限轮播
- viewpager无限循环的问题
- 无限自动滑动的ViewPager
- Viewpager的无限轮播!!!
- ViewPager的无限轮播
- ViewPager的无限轮播
- 27.七-封装测试类setUp和tearDown
- 图像清晰度的评价指标
- 使用easyui-combobox生成下拉框时的总结(2)
- 数据仓库和OLAP技术回顾综述
- 无限“递归”的python程序
- android:ViewPager的无限多页数的设置
- spring aop的五种通知类型
- 【代码笔记】iOS-MBProgressHUD
- js取不到input的值
- IPV6网络管理
- win32(1)--基础
- android 省市区选择器
- Dubbo入门及简介
- leetcode Roman& Integer