文档章节

滑动事件总结(刷新,加载更多,嵌套滑动)

江湖三弟
 江湖三弟
发布于 2016/06/07 15:28
字数 552
阅读 159
收藏 0

#下拉刷新   在Api21之前,ListView和GridView的使用相当普遍,包括下拉刷新我们也可以使用它,利用他的addHeaderView()和addFooterView()方法,或者使用父级中隐藏View的方式来实现;

  在Api21之后,出现了RecyclerView和SwipeRefreshLayout,有人选择了用两者相结合的方式来实现下拉刷新,在看到SwipeRefreshLayout的效果后,我觉得这比之前看到的任何刷新Loading的效果都要简单直接,所有也提倡去替换现有的加载方式。

  可是在使用过程中,SwipeRefreshLayout和RecyclerView相结合后,SwipeRefreshLayout下拉后的阻尼效果也好像消失了一样,拉动起来就没那么精神了,对于追求极致的我来说,是不能接受的。

总结:
  1.下拉刷新最佳方式:SwipeRefreshLayout和ListView相结合;

  2.RecyclerView适用于不需要添加任何刷新单纯展示list数据的情况;也可以和ScrollerView相配合来展示效果。

#上拉加载更多   加载更多相比下拉,其实简单多了。通过监听ListView的滑动距离即最后可见的position是否是最后一项来判断(getLastVisiblePosition())。

#嵌套滑动   在代码设计过程中,应当特别注意,原则上嵌套滑动是不太好的设计方案,之前网上有很多这样的设计案例。 ScrollView嵌套ListView,之后ListView无法滑动,然后就重写ListView的onMeasure()方法(NoScrollListView),在理解事件传递机制后就能大概明白,这种思路不太可取。

  所以在开发中,我们可以同步LinearLayout的addView()方法动态添加View。这样就不会影响到滑动机制了。当然如果有比较多的item选项可以考虑换一套思路:将ScrollView替换成ListView,通过addHeaderView的方式实现。

  当然在有了NestedScrollingParent,NestedScrollingParentHelper,NestedScrollingChild和NestedScrollingChildHelper之后嵌套滑动又有了新的思路。(下一章:嵌套滑动的解决方案)

© 著作权归作者所有

江湖三弟
粉丝 32
博文 70
码字总数 31259
作品 0
苏州
高级程序员
私信 提问
自定义View实现上拉/下拉刷新

1 概述 最近在做项目的时候,需要实现列表的下拉刷新和上拉加载更多的功能,由于项目周期问题,下拉刷新就直接使用了系统提供的SwipeRefreshLayout类,但是SwipeRefreshLayout的实现效果真的...

ForeverCy
2017/09/03
0
0
Android列表,嵌套滑动

仿淘宝、京东拖拽商品详情(可嵌套ViewPager、ListView、WebView、FragmentTabhost) 对于电商App,商品详情无疑是很重要的一个模块,观察主流购物App的详情界面,发现大部分都是做成了上下两部...

掘金官方
2017/12/15
0
0
lucky_jayce/CoolRefreshView

CoolRefreshView ###1. 支持任意View的刷新 ###2. 支持自定义Header ###3. 支持NestedScrollingParent,NestedScrollingChild的事件分发 ###4. 嵌套ViewPager不会有事件冲突 ###7.导入方式 <1......

lucky_jayce
2017/03/11
0
0
lucky_jayce/ViewPagerIndicator

ViewPagerIndicator ###1. 支持自定义tab样式 ###2. 支持自定义滑动块样式和位置 ###3. 支持自定义切换tab的过渡效果 ###4. 支持子界面的预加载和界面缓存 ###5. 支持设置界面是否可滑动 ##...

lucky_jayce
2016/01/17
0
0
Jaynm/PullToRefreshListView

PullToRefreshScrollViewDemo Android使用PullToRefresh完成ListView下拉刷新和左滑删除 一、本文主要内容: 使用PullToRefresh完成ListView下拉、上拉刷新; 扩展PullToRefresh完美的实现L...

Jaynm
2016/11/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

最简单的获取相机拍照的图片

  import android.content.Intent;import android.graphics.Bitmap;import android.os.Bundle;import android.os.Environment;import android.provider.MediaStore;import andr......

MrLins
今天
6
0
说好不哭!数据可视化深度干货,前端开发下一个涨薪点在这里~

随着互联网在各行各业的影响不断深入,数据规模越来越大,各企业也越来越重视数据的价值。作为一家专业的数据智能公司,个推从消息推送服务起家,经过多年的持续耕耘,积累沉淀了海量数据,在...

个推
今天
9
0
第三方支付-返回与回调注意事项

不管是支付宝,微信,还是其它第三方支付,第四方支付,支付机构服务商只要涉及到钱的交易都要进行如下校验,全部成功了才视为成功订单 1.http请求是否成功 2.校验商户号 3.校验订单号及状态...

Shingfi
今天
5
0
简述Java内存分配和回收策略以及Minor GC 和 Major GC(Full GC)

内存分配: 1. 栈区:栈可分为Java虚拟机和本地方法栈 2. 堆区:堆被所有线程共享,在虚拟机启动时创建,是唯一的目的是存放对象实例,是gc的主要区域。通常可分为两个区块年轻代和年老代。更...

DustinChan
今天
7
0
Excel插入批注:可在批注插入文字、形状、图片

1.批注一直显示:审阅选项卡-------->勾选显示批注选项: 2.插入批注快捷键:Shift+F2 组合键 3.在批注中插入图片:鼠标右键点击批注框的小圆点【重点不可以在批注文本框内点击】----->调出批...

东方墨天
今天
7
1

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部