没有合适的资源?快使用搜索试试~ 我知道了~
android 下拉刷新实现原理
需积分: 10 2 下载量 163 浏览量
2016-01-16
16:22:49
上传
评论 1
收藏 309KB DOCX 举报
温馨提示
试读
20页
android 下拉刷新实现原理,网上找的很详细的说明。
资源推荐
资源详情
资源评论
下拉刷新框架实现
1. 关于下拉刷新
下拉刷新这种用户交互最早由 创始人洛伦 布里切特• 发明,有理
论认为,下拉刷新是一种适用于按照从新到旧的时间顺序排列 feeds 的应用,在这种应用
场景中看完旧的内容时,用户会很自然地下拉查找更新的内容,因此下拉刷新就显得非常
合理。大家可以参考这篇文章:有趣的下拉刷新,下面我贴出一个有趣的下拉刷新的案例。
图一、有趣的下拉刷新案例(一)
图一、有趣的下拉刷新案例(二)
2. 实现原理
上面这些例子,外观做得再好看,他的本质上都一样,那就是一个下拉刷新控件通常由以
下几部分组成:
【1】Header
通常有下拉箭头,文字,进度条等元素,根据下拉的距离来改变它的状态,从而
显示不同的样式
【2】Content
这部分是内容区域,网上有很多例子都是直接在 里面添加 ,但这就有局
限性,因为好多情况下并不一定是用 来显示数据。我们把要显示内容的 放
置在我们的一个容器中,如果你想实现一个用 显示数据的下拉刷新,你需要创建
一个 旋转到我的容器中。我们处理这个容器的事件(),如
果向下拉,则把整个布局向下滑动,从而把 显示出来。
【3】Footer
可以用来显示向上拉的箭头,自动加载更多的进度条等。
以上三部分总结的说来,就是如下图所示的这种布局结构:
图三,下拉刷新的布局结构
关于上图,需要说明几点:
、这个布局扩展于 LinearLayout,垂直排列
、从上到下的顺序是:
、 填充满父控件,通过设置 的 来使 和
不可见,也就是让它超出屏幕外
!、下拉时,调用 ""# 方法来将整个布局向下滑动,从而把 显示出来,上拉
正好与下拉相反。
$、派生类需要实现的是:将 填充到父容器中,比如,如果你要使用的话,
那么你需要把 %""& 等添加到容器中。
'、上图中的红色区域就是屏的大小(严格来说,这里说屏幕大小并不准确,应该说成内
容区域更加准确)
3. 具体实现
明白了实现原理与过程,我们尝试来具体实现,首先,为了以后更好地扩展,设计更加合
理,我们把下拉刷新的功能抽象成一个接口:
1、IPullToRefresh<T extends View>
它具体的定义方法如下:
"()(*+""#,)-#(.(/(0
(((("((+"",)1""("",)1"2
(((("((+""1""(""1"2
(((("((%""1""(""1"2
(((("("(+"",)1"2
(((("("(+""1"2
(((("("(%""1"2
(((("((3,)3,)-#/()
2
(((("((+""4,)"2
(((("((+""5,)"2
(((("(#( ,)"2
(((("( 6( 62
(((("( 6( 62
(((("((5"%7(""2
8
这个接口是一个泛型的,它接受 的派生类,因为要放到我们的容器中的不就是一个
View 吗?
2、PullToRefreshBase<T extends View>
剩余19页未读,继续阅读
资源评论
九仞山
- 粉丝: 2w+
- 资源: 14
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功