标签:
1、由于项目需要,需要达到比较个性化的下拉刷新效果,这时,仅仅会使用安卓最流行的开源PullToRefresh下拉刷新是不够了,同时为了节约开发时间,从新开发下拉刷新又需要一定时间,此时,最好的解决办法是从PullToRefresh源码角度去探索实现原理以及在源码基础上进行修改并达到需要的功能效果。
2、分析一个类,免不了首先看类的继承关系。
父类有一个LinearLayout,且用了泛型T,可以猜测到,下拉刷新的实现是一个LinearLayout里边包括一个想要下拉刷新的ListView或者GridView,刷新的时候显示出上边或者下边的刷新效果就好了。
3、从最顶层的父类往下分析。
(1)PullToRefreshBase<T>:
public abstract class PullToRefreshBase<T extends View> extends LinearLayout implements IPullToRefresh<T>
此类实现了接口IPullToRefresh:
(2)PullToRefreshBase:
此类中有变量T mRefreshableView,这个变量是存放可下拉刷新的控件用的
private LoadingLayout mHeaderLayout;
private LoadingLayout mFooterLayout;
这两个变量存放头部刷新(下拉刷新)的布局和尾部刷新(上拉刷新)布局。
private FrameLayout mRefreshableViewWrapper;包含RefreshableView的布局。
探索android开源项目PullToRefresh实现原理
标签:
原文地址:http://www.cnblogs.com/hpustudent/p/4696853.html