博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
下拉刷新ListView实现原理
阅读量:6830 次
发布时间:2019-06-26

本文共 940 字,大约阅读时间需要 3 分钟。

(1)主要是onScroll()方法和onTouchEvent()方法,先是onTouchEvent()的ACTION_DOWN,然后是 ACTION_MOVE和onScroll()方法同时进行,最后是onTouchEvent()的ACTION_UP。

     (2)刷新的4种状态:CLICK_TO_REFRESH(点击刷新状态,初始状态)、DROP_DOWN_TO_REFRESH(当刷新layout高 度低于一定范围时,为此状态)、RELEASE_TO_REFRESH(当刷新layout高度高于一定范围时,为此状态)、REFRESHING(刷新 中)
    (3)onTouchEvent函数:
             ACTION_DOWN时:记录此时touch的点的y坐标,在下面调整高度时使用
             ACTION_MOVE时:此时不断调整header的高度
             ACTION_UP时:根据当前状态决定是进行刷新还是放弃刷新
      (4)onScrollStateChanged函数:
              SCROLL_STATE_TOUCH_SCROLL:表示listview正在滚动中,并且手指没有离开屏幕
              SCROLL_STATE_FLING:listview正在滚动中,且手指已经离开屏幕
              SCROLL_STATE_IDLE:停止滚动
        (5)onScroll函数:根据listView的当前滚动状态即currentScrollState和当前刷新的状态不断修改header内容显示和刷新状态,如下:
               ListView为SCROLL_STATE_TOUCH_SCROLL且刷新状态不为REFRESHING:
                     (a)刷新对应的item可见时,若刷新layout高度超出范围,则置刷新状态为RELEASE_TO_REFRESH;若刷新layout高度低于高度范围,则置刷新状态为DROP_DOWN_TO_REFRESH。

                     (b) 刷新对应的item不可见,重置header

               ListView为SCROLL_STATE_FLING状态(松手滚动中)

                     (a) 若刷新对应的item可见并且刷新状态不为REFRESHING,设置position为1的(即第二个)item可见

                     (b) 若反弹回来,设置position为1的(即第二个)item可见

转载地址:http://isjkl.baihongyu.com/

你可能感兴趣的文章
人脸识别算法初次了解
查看>>
设计模式(十)组合(结构型)
查看>>
JAVA复制文件最快的算法
查看>>
UICamera(NGUI Event system)原理
查看>>
sudo nopasswd
查看>>
用自己的话描述wcf中的传输安全与消息安全的区别(二)
查看>>
99 Lisp Problems 列表处理(P1~P28)
查看>>
实用图片滑块,传送带,幻灯片效果【附源码】
查看>>
Bluez SPP实现代码分析(转)
查看>>
android中给TextView或者Button的文字添加阴影效果
查看>>
读《被投资人“送”入看守所》一文有感(转)
查看>>
生产环境线上測试的慘淡人生
查看>>
代码阅读分析工具Understand 2.0试用
查看>>
Linux Load average负载详细解释
查看>>
Android多媒体框架图
查看>>
jps命令使用
查看>>
ADC In An FPGA
查看>>
在 Windows上配置NativeScript CLI
查看>>
ubuntu14.04 qt4 C++开发环境搭建
查看>>
iOS 通讯录-获取联系人属性
查看>>