探索android开源项目PullToRefresh实现原理

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的布局。

时间: 2025-01-09 17:23:33

探索android开源项目PullToRefresh实现原理的相关文章

Android开源项目pulltorefresh分析与简单使用

在Android开发中有时我们需要访问网络实时刷新数据,比如QQ好友在线状态最新信息,QQ空间需要显示更多的好友动态信息,EOE论坛客户端显示更多的文章帖子信息等.android-pulltorefresh开源项目提供一个向下滑动即刷新列表的功能,将该项目稍作修改即可应用到自己的项目中. 1.下载地址 https://github.com/johannilsson/android-pulltorefresh 该项目为 Android 应用提供一个向下滑动即刷新列表的功能. 2.工程组成 Pull

优秀的 Android 开源项目

摘要  转载http://www.trinea.cn/android/android-open-source-projects-view/,方便大家找到自己合适的资料 目录[-] 一.ListView 二.ActionBar 三.Menu 四.ViewPager .Gallery 五.GridView 六.ImageView 七.ProgressBar 八.其他 GitHub上优秀Android开源项目 3. Android开发神器 1.Xabber客户端 2.oschina客户端 3.手机安全

Android 开源项目分类汇总

目前包括: Android 开源项目第一篇--个性化控件(View)篇  包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style.其他Android 开源项目第二篇--工具库篇  包括依赖注入.图片缓存.网络请求.数据库 ORM 工具包.Andro

66.Android 开源项目分类汇总

转载:https://github.com/Trinea/android-open-project 目前包括: Android 开源项目第一篇——个性化控件(View)篇  包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style.其他Android

Android 开源项目分类汇总(转载)

Android 开源项目第一篇——个性化控件(View)篇  包括ListView.ActionBar.Menu.ViewPager.Gallery.GridView.ImageView.ProgressBar.TextView.ScrollView.TimeView.TipView.FlipView.ColorPickView.GraphView.UI Style.其他Android 开源项目第二篇——工具库篇  包括依赖注入.图片缓存.网络请求.数据库 ORM 工具包.Android 公共库

GitHub上史上最全的Android开源项目分类汇总

今天在看博客的时候,无意中发现了@Trinea在GitHub上的一个项目Android开源项目分类汇总,由于类容太多了,我没有一个个完整地看完,但是里面介绍的开源项目都非常有参考价值,包括很炫的界面特效设计.个性化控件.工具库.优秀的Android开源项目.开发测试工具.优秀个人和团体等.可以这样说,每一位Andorid开发人员都能从中找到一个或多个适用自己项目的解决方案,消化吸收并加以利用,可以为自己的APP增色不少.文章最后还列出了部分国外著名Android开发者的信息,包括GitHub地址

论一款炫酷 Android 开源项目的修炼之路(下)

Travis CI 的使用 官网: http://travis-ci.org/ ps: 这个是公开的,如果需要使用私有的,请使用 .com 域名. 需要提醒的是:每次提交代码后都会重新下载需要的资源文件哦,所以时间很长,耐心等待吧. TravisCI 有什么用? travis-ci 就是 自动化 CI 工具,类似于大公司经常使用的 Jenkins,但是 travis-ci 是在云端的,而是支持 github, 还免费,我们可以 用 travis-ci 做很多的事情,不仅仅是 编译看 项目有没有问

Android 开源项目源码解析(第二期)

Android 开源项目源码解析(第二期) 阅读目录 android-Ultra-Pull-To-Refresh 源码解析 DynamicLoadApk 源码解析 NineOldAnimations 源码解析 SlidingMenu 源码解析 Cling 源码解析 BaseAdapterHelper 源码分析 Side Menu.Android 源码解析 DiscreteSeekBar 源码解析 CalendarListView 源码解析 PagerSlidingTabStrip 源码解析 公共

Android开源项目和轮子

推荐查看Github最全面的Android开源项目汇总 功能框架 数据库 ORMLite框架 greenDaoMaster框架 Xutils的DButils ORMLitehe和greenDaoMaster简单性能对比 图片加载 name 使用 ImageLoader 使用讲解 picasso 使用讲解 Fresco 使用讲解 stackoverflow:几个图片加载框架的对比MDCC 2015:三大图片缓存原理.特性对比 工具类 LogUtil(支持直接打印数据集合,如List.Set.Map