监听ListView滚动到最底部

监听ListView的滚动可以用两个东西:

  1. ListView.onScrollStateChanged (本文讲解这个listener的使用)
  2. 在OnGestureListener类里面的

    onScroll(MotionEvent e1, MotionEvent e2,
                    float distanceX, float distanceY)   事件

SDK的Sample里面的ApiDemos里面的List9 和 List 13介绍了 ListView.OnScrollListener的使用。

List9介绍的是ListView.OnScrollListener的 onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 方法。

List13介绍的是ListView.OnScrollListener的 onScrollStateChanged(AbsListView view, int scrollState) 方法,使用说明如下:

ListView.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
            case OnScrollListener.SCROLL_STATE_IDLE:
                Log.v("已经停止:SCROLL_STATE_IDLE");
                break;
            case OnScrollListener.SCROLL_STATE_FLING:
                Log.v("开始滚动:SCROLL_STATE_FLING");
                break;
            case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
   Log.v("正在滚动:SCROLL_STATE_TOUCH_SCROLL");
                break;
            }
    }
 
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
           int visibleItemCount, int totalItemCount) {
    }
});

监听ListView滚动到最底部使用 onScrollStateChanged(AbsListView view, int scrollState) 方法,代码大致如下:

// 监听listview滚到最底部
mIndexList.setOnScrollListener(new OnScrollListener() {
    @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
        switch (scrollState) {
            // 当不滚动时
            case OnScrollListener.SCROLL_STATE_IDLE:
                // 判断滚动到底部
                if (view.getLastVisiblePosition() == (view.getCount() - 1)) {
                    isLastisNext++;
              }
              break;
        }
    }
 
    @Override
    public void onScroll(AbsListView view, int firstVisibleItem,
           int visibleItemCount, int totalItemCount) {
    }
});

我使用这个发现两个问题:
  1. 在模拟器上,如果使用鼠标的滚轮来滚动时执行 onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount)  方法,不执行 onScrollStateChanged(AbsListView view, int scrollState)  方法。只有触摸往下滑动时,才执行onScrollStateChanged(AbsListView view, int scrollState) 方法。有待考证。
  2. SCROLL_STATE_TOUCH_SCROLL一定执行,然后下面可能执行SCROLL_STATE_FLING,也可能执行SCROLL_STATE_IDLE。这个是不确定的。有待考证。

监听ListView滚动到最底部相关推荐

  1. Android项目:使用pulltorefresh开源项目扩展为下拉刷新上拉加载更多的处理方法,监听listview滚动方向...

    很多android应用的下拉刷新都是使用的pulltorefresh这个开源项目,但是它的扩展性在下拉刷新同时又上拉加载更多时会有一定的局限性.查了很多地方,发现这个开源项目并不能很好的同时支持下拉刷 ...

  2. 精确监听AbsListView滚动至底部

    用户使用android客户端时,当ListView滚动至底部,可以由一个按钮来提示用户是否读下一页,那么如果使用GridView呢?现在很多WEB 2.0上的体验就是当底部时自动读取下一页数据,Gri ...

  3. android列表项点击事件,Android 开发 tips(2):监听 Listview 列表项点击事件

    Android 开发 tips(2):监听 Listview 列表项点击事件 (这篇和上篇本来是应该一起写的,但是太过冗长,附链接:[SimpleAdapter 在 Listview 中的应用] ht ...

  4. vue 监听页面滚动事件:触发animate.min.css动画特效

    一.问题答疑: 1. animate.css 如何在vue项目中引入?或引用? 2. 如何监听滚动事件,触发animate.class动画播放? vue 监听滚轮滚动事件,for循环 ,动态id,代码 ...

  5. 监听页面滚动触发事件,页面停止滚动触发事件

    监听页面滚动触发事件,页面停止滚动触发事件 核心代码 data() {return {timer: null,isTipVisible: true} } methods: {handleScrollS ...

  6. 微信小程序-监听屏幕滚动

    一.效果: 功能描述:监听屏幕滚动,实现向下滚动时搜索框和分类选项置顶,向上滚动页面恢复原样. 二.实现: 运用页面Page()函数中的onPageScroll方法,来监听屏幕滚动的距离. 1).js ...

  7. vue监听页面滚动事件

    方法:监听滚动实现 通过addEventListener方式监听 通过scroll获取到滚动 export default {data () {return {topNavBg: {backgroun ...

  8. jquery 监听元素滚动_jQuery在滚动时保持元素在视图中

    jquery 监听元素滚动 关于如何使元素保持可见的jQuery快速代码段. 为使演示向下滚动到博客上的任何页面并在右侧栏中显示广告,在您向下滚动页面时,它们仍处于查看状态. 然后,当您再次向上滚动时 ...

  9. html监听页面滚动高度,jquery如何监听滚动条事件?

    jquery如何监听滚动条事件?下面本篇文章给大家介绍一下.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. 问题: 在浏览很多网页中都会发现,当滚动条滚动到一定的位置的时候就出显示一 ...

最新文章

  1. Leetcode 136.只出现一次的数字 (每日一题 20210714)
  2. 使用Container.ItemIndex获取Repeater、Gridview行的序号的简单方法
  3. SAP Commerce Cloud Backoffice CMS 里的内容一览
  4. resteasy_RESTEasy教程第2部分:Spring集成
  5. 经典MapReduce作业和Yarn上MapReduce作业运行机制
  6. 第一次体验python有感
  7. 【C语言进阶深度学习记录】二十 结构体大小计算与结构体内存布局的详细方法
  8. git提交代码到github
  9. wp8.1 java,Windows Phone 粉的福音:如何给 WP8.1 解锁部署 xap 软件
  10. 码神之路博客项目部署
  11. 【U+】通用财务修改财务参数:业务生成的会计凭证不允许修改
  12. 15针VGA公头焊接示意图
  13. Python实现截图AI文字识字小工具
  14. 《大象--Thinking in UML 第二版》已于近日在当当首发,同时邀请各位加入新浪微博[大象-thinkinginUml群]:http://q.weibo.com/1483929
  15. Windows查看最近访问的文件目录或文件夹
  16. 通用方法配置Windows 10 1909 1903 2004等版本下配置多用户同时远程访问
  17. 阿里巴巴第三方接口发送短信验证码
  18. python凯撒加密实验报告_Python之凯撒加密
  19. Stetho增加SD卡路径的数据库
  20. 关于upp和lower

热门文章

  1. 【Flutter】ExpansionTile 可折叠列表
  2. 【awk】用awk将Fasta文件序列变成一行
  3. mysqlcppconn之ConnectOptionsMap的使用
  4. CF 529B Group Photo 2 (online mirror version)
  5. Oracle 数据表误删恢复 Flashback
  6. 集合框架Map、List、Set
  7. 第十五篇、程序返回前台的时间差(常用于显示广告)
  8. Delegate,Action,Func,匿名方法,匿名委托,事件 (转载)
  9. 蛋花花谈Web开发到底要不要加入人工智能
  10. Android Binder的使用