首先说明,这几篇文章是对一些前辈的成果进行学习后的心得总结。也借这种方式对他们表示谢意。
最近项目中好几个模块都用到listview和gridview的下拉刷新,上拉加载更多等功能,而且涉及到图片的批量下载。水平有限,首先是想到找一些比较成熟的作品,然后自己修改后再使用。这几篇文章就分析下我站在巨人的肩膀上学习的经过。现在网上一搜,几乎所有的“下拉刷新类”都是通过自定义组合控件,添加下拉头部或脚部,然后控制下拉头部的或脚部的topMargin值(官方的下拉刷新控件SwipRefreshLayout是通过父视图控制子视图的头部偏移量)完成下拉效果。所以,“下拉刷新类”不外乎下面几个过程:
1. 自定义组合控件,通常继承LinearLayout或者更明确地继承ListView,GridView等。
2. 添加头部和脚部,ListView可以直接自身添加头部子视图和脚部子视图,继承其他布局的组合自定义控件分别在最初始和最末尾添加视图。
3. 通过适时拦截触屏事件,控制头部的topMargin达到下拉的效果。触屏事件可以通过外层布局控件拦截并处理或者在内层的ListView和GridView等处理。
也有直接继承ViewGroup实现的完全自定义刷新控件:http://www.eoeandroid.com/thread-536402-1-1.html,这个太厉害了。
基础