Android开源项目-XListView

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 主要功能

  1. 监听滑动位置,根据位置坐标计算是否上拉或者下拉,操作XHearderView和XFotterView的状态
  2. 对外提供接口监听onRefresh、onLoadMore

3.2 XHeaderView 主要功能

  1. 下拉刷新时下图部分的样式状态更新,可以根据需要自定制

Paste_Image.png

3.3 XFooterView 主要功能

  1. 上拉加载更多时下图部分的样式状态更新,可以根据需要自定制

Paste_Image.png

3.4 具体关键代码解析

XListView:


Paste_Image.png

监听onTouch事件,当拉到listview的首个单元的时候并继续向下拉的时候,如果不松手,则XHearderView会动态设置拉高整个headview高度,这样就实现了可以不松手一直向下拉的效果。向上拉加载更多同理。

当松手时,判断如果listview当前位置是首个单元时,判断headerview的高度,如果大于指定的高度,即认为触发下拉刷新。调用onRefresh接口,并且将headerview设置为loading样式状态。想上拉加载更多同理。

以上即上拉下拉的核心算法。至于其他设置监听函数、设置是否开启上拉下拉功能、XHeaderView、XFooterView各个状态的样式都是可以自定制。

4 总结

XListView这个开源库虽然功能单一,但是现实项目开发中大部分上拉下拉的listview这个都可以实现。

并且由于代码简答,无论对于新手极易上手还是对于老手自定义样式和扩充功能都是极好的。强烈推荐!!!

结尾

更多文章关注我的公众号



文/Tsy远(简书作者)
原文链接:http://www.jianshu.com/p/9c40c0968f4b
著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。
posted @ 2016-12-01 16:58  天涯海角路  阅读(124)  评论(0)    收藏  举报