XListView—Android开源项目
2017-11-13 19:49
225 查看
Android开源项目-XListView
2016.07.14 14:57*
字数 723 阅读 2569评论 0喜欢 21
XListView是一个含有下拉刷新、上拉加载功能的Android开源项目。特点是代码量极少(只有3个java文件和2个xml文件即可实现),虽然功能较为单一,但是在项目开发中很实用。并且由于代码量小,可以很轻松的理解下拉刷新和下拉加载的源码机制,并加以自定制。
1 源码地址
最基础的XListView是:https://github.com/Maxwin-z/XListView-Android
其中有一个fork库完善下拉刷新上拉加载更多的功能并实现自动刷新以及自动加载等功能, 并增加对ScrollView的支持。建议直接使用这个即可。本文即使用该库。
https://github.com/MarkMjw/PullToRefresh
2 使用步骤
下载源码后。核心代码是XListView.java XHearderView.java XFooterView.java三个文件。(其中还有涉及一些资源文件)
具体怎么使用可以直接参考XListViewActivity.java这个activity。
目录结构
代码使用示例:
Paste_Image.png
样式截图:
1.png
2.png
3.png
3 关键源码解析
3.1 XListView 主要功能
监听滑动位置,根据位置坐标计算是否上拉或者下拉,操作XHearderView和XFotterView的状态对外提供接口监听onRefresh、onLoadMore
3.2 XHeaderView 主要功能
下拉刷新时下图部分的样式状态更新,可以根据需要自定制Paste_Image.png
3.3 XFooterView 主要功能
上拉加载更多时下图部分的样式状态更新,可以根据需要自定制Paste_Image.png
3.4 具体关键代码解析
XListView:Paste_Image.png
监听onTouch事件,当拉到listview的首个单元的时候并继续向下拉的时候,如果不松手,则XHearderView会动态设置拉高整个headview高度,这样就实现了可以不松手一直向下拉的效果。向上拉加载更多同理。
当松手时,判断如果listview当前位置是首个单元时,判断headerview的高度,如果大于指定的高度,即认为触发下拉刷新。调用onRefresh接口,并且将headerview设置为loading样式状态。想上拉加载更多同理。
以上即上拉下拉的核心算法。至于其他设置监听函数、设置是否开启上拉下拉功能、XHeaderView、XFooterView各个状态的样式都是可以自定制。
4 总结
XListView这个开源库虽然功能单一,但是现实项目开发中大部分上拉下拉的listview这个都可以实现。并且由于代码简答,无论对于新手极易上手还是对于老手自定义样式和扩充功能都是极好的。强烈推荐!!!
相关文章推荐
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- android 开源项目(二)可以左右拖动删除、调换位置的的listview的 item的实现(drag-sort-listview)
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向 推荐
- 【开源项目4】Android ExpandableListView
- Android 开源项目浅读-------SwipeMenuListView-重写,第四章,修改适配器
- Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向
- Android开源项目发现---ListView篇(持续更新)
- android SwipeListView开源项目导入
- Android 开源项目浅读-------SwipeMenuListView
- Android ListView相关开源项目汇总
- Android开源项目发现---ListView篇(持续更新)
- GitHub 优秀的 Android 开源项目 - listview相关
- android SwipeListView开源项目导入
- Android 开源项目浅读-------SwipeMenuListView-重写-第一章-手指移动事件捕获
- 采用github上的开源项目Android-PullToRefresh实现ListView的下拉刷新和上拉加载
- android-xlistView下拉刷新的listview(开源项目)
- 关于android-swipelistview的开源项目的使用
- Android开源项目发现---ListView篇
- 【转】Android开源项目发现---ListView篇(持续更新)
- 【开源项目4】Android ExpandableListView