Android ListView 滑动分页
来源:互联网 发布:matlab遍历二维数组 编辑:程序博客网 时间:2024/04/30 20:03
主要用ViewPager + ListView 实现,实现思路:ViewPager实现横向分页,在每个页面动态添加固定条目的ListView,(有人会说直接用布局写页面,可是如果每个Item相同且有五六个,适配器绑定数据源就会变得很麻烦)效果已经实现,但个人觉得这个办法还是比较笨的,本人还是菜鸟,希望大神指点。
我用的是 GitHub 上大神写自定义ViewPager(https://github.com/JakeWharton/Android-DirectionalViewPager) ,一开始想做垂直的上下滑动分页,可是效果有时可以有时不行,应该是ListView本身的上下滑动与ViewPager垂直滑动冲突了,目前还没有解决,查阅资料是需要截获ListView的OnThouch事件(求教了)。
其他的代码都简单,下面附上源码,主要把ViewPager的适配器代码拿出来说一下,思路就是将一个List源分割成页数一样的子List,我这里是设定的每个页面固定六条记录:
public class ListViewPagerAdapter extends PagerAdapter {Context context;List<View> mListViewPager = new ArrayList<View>(); // ViewPager对象的内容List<String> list = new ArrayList<String>();
List<List<String>> lcontant = null;//用来装分割的Listint pageNum = 1; //初始化页数public ListViewPagerAdapter(Context context, List<String> kf) {int count = 0; //循环次数int pos = 0;//当前位置this.context = context;this.list = kf;//计算页数pageNum = (int) Math.ceil(list.size() / 6.0);Log.d("hx2", String.valueOf(pageNum));if (Math.ceil(kf.size() / 6.0) == 0) {pageNum = 1; //不足一页按一页算}lcontant = new ArrayList<List<String>>();for (int i = 0; i < pageNum; i++) {Log.d("hx2", String.valueOf(i));List<String> item = new ArrayList<String>();for(int k = pos;k<kf.size();k++){count++;pos = k;item.add(kf.get(k));//每个List六条记录,存满6个跳出if(count == 6){count = 0;pos = pos+1; //从下一条开始break;}}lcontant.add(item);}//为每个页面绑定Listviewfor (int j = 0; j < pageNum; j++) {View viewPager = LayoutInflater.from(context).inflate(R.layout.list, null);ListView mList = (ListView) viewPager.findViewById(R.id.wifi_list);mList.setAdapter(new Myadapter(context, lcontant.get(j)));mListViewPager.add(viewPager);}}@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1;}@Overridepublic int getCount() {return mListViewPager.size();}@Overridepublic Object instantiateItem(View container, int position) {((ViewPager) container).addView(mListViewPager.get(position));return mListViewPager.get(position);}@Overridepublic void restoreState(Parcelable arg0, ClassLoader arg1) {}@Overridepublic Parcelable saveState() {return null;}@Overridepublic void startUpdate(View arg0) {}@Overridepublic void destroyItem(View container, int position, Object arg2) {ViewPager pViewPager = ((ViewPager) container);pViewPager.removeView(mListViewPager.get(position));}@Overridepublic void finishUpdate(View arg0) {// TODO Auto-generated method stub}}
源码下载页:http://download.csdn.net/detail/huxing0215/7017231
0 0
- Android ListView 滑动分页
- Android listView滑动刷新代码(分页功能)
- Android listview滑动删除下拉刷新上拉分页
- android listview左右滑动分页(viewpager嵌套listview进行分页),焦点图带圆焦点
- android listview左右滑动分页(viewpager嵌套listview进行分页),焦点图带圆焦点
- 使用ListView进行滑动分页
- android 滑动分页
- android滑动分页
- android滑动分页
- android 滑动分页
- android 滑动分页
- Android ViewPager 分页滑动
- Android--Listview横向滑动
- Android ListView滑动加载
- Android ListView滑动变黑
- Android ListView 水平滑动
- Android listView 滑动加载
- Android ListView滑动删除
- 马航 挺住 全世界为你接机
- MapReduce中使用BytesWritable类型时要注意
- 2.7. About Secondary Storage
- MySQL 排序检索数据Select——MySQL系列(二)
- android hint 自动消失
- Android ListView 滑动分页
- struts2教程
- IOS怎样使用MessageUI Framework 发送短信息
- UIButton 多个事件 响应同一函数
- 2.8. About Physical Networks
- 用心情去游览
- Ssh连接linux 提示总线错误
- 配置Oracle Client 登陆管理远程数据库
- 新人来报道