OnScrollListener回调分析

转载 2015年11月21日 12:45:23

转载自:http://www.cnblogs.com/tt_mc/archive/2012/10/10/2718333.html

如果adapter中的数据量很大的时候,在加载listview时会出现卡顿的现象。这是会让用户抓狂!最好的解决办法就是先加载一定数量的数据,然后在最下方提示正在加载! 
动态加载就是把放入adapter中的数据分好几次加载。在用户拖动listview时再加载一定的数据,和sina微博的客户端类似。 
给listview添加OnScrollListener监听事件默认会覆盖下面两个方法:

new OnScrollListener() {    
        boolean isLastRow = false;    
        
        @Override    
        public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {    
            //滚动时一直回调,直到停止滚动时才停止回调。单击时回调一次。    
            //firstVisibleItem:当前能看见的第一个列表项ID(从0开始)    
            //visibleItemCount:当前能看见的列表项个数(小半个也算)    
            //totalItemCount:列表项共数    
        
            //判断是否滚到最后一行    
            if (firstVisibleItem + visibleItemCount == totalItemCount && totalItemCount > 0) {    
                isLastRow = true;    
            }    
        }    
        @Override    
        public void onScrollStateChanged(AbsListView view, int scrollState) {    
            //正在滚动时回调,回调2-3次,手指没抛则回调2次。scrollState = 2的这次不回调    
            //回调顺序如下    
            //第1次:scrollState = SCROLL_STATE_TOUCH_SCROLL(1) 正在滚动    
            //第2次:scrollState = SCROLL_STATE_FLING(2) 手指做了抛的动作(手指离开屏幕前,用力滑了一下)    
            //第3次:scrollState = SCROLL_STATE_IDLE(0) 停止滚动                          //当屏幕停止滚动时为0;当屏幕滚动且用户使用的触碰或手指还在屏幕上时为1;  
            //由于用户的操作,屏幕产生惯性滑动时为2  
        
            //当滚到最后一行且停止滚动时,执行加载    
            if (isLastRow && scrollState == AbsListView.OnScrollListener.SCROLL_STATE_IDLE) {    
                //加载元素    
                ......    
        
                isLastRow = false;    
            }    
        }    
    }


使用OnScrollListener回调处理自动加载更多

首先来分析下OnScrollListener的回调, new OnScrollListener() { boolean isLastRow = false; ...
  • fancylovejava
  • fancylovejava
  • 2014年09月18日 11:46
  • 6262

Android实战简易教程-第五十三枪(通过实现OnScrollListener接口实现上拉加载更多功能)

支持上拉加载更多的控件有很多,但是你知道背后的原理吗?有一些面试官可能会问到这方便的知识,他们认为会用不是目的,懂背后的原理才是真人才。下面我们通过实现OnScrollListener接口实现上拉加载...
  • yayun0516
  • yayun0516
  • 2015年09月04日 20:59
  • 3192

OnScrollListener接口的方法详解

一、OnScrollListener的两个方法被执行时机 //用来标记是否正在向最后一个滑动 boolean isSlidingToLast = false; ...
  • sqf251877543
  • sqf251877543
  • 2017年03月01日 21:09
  • 1627

Android 关于 OnScrollListener 事件顺序次数的简要分析

在 Android 的 OnScrollListener 整个事件我主要分析下他的执行顺序: 实现滚动事件的监听接口 new AbsListView.OnScrollListener(){ ...
  • zsjangel
  • zsjangel
  • 2014年02月14日 18:19
  • 8817

android -- 小问题 关于ListView设置了OnScrollListener之后onScrollStateChanged()和onScroll方法监听不到的问题

关于ListView设置了OnScrollListener之后onScrollStateChanged()和onScroll方法监听不到的问题: 原因: 首先OnScrollListener是焦点滚动...
  • u012573920
  • u012573920
  • 2014年08月08日 14:28
  • 5314

关于ListView设置了OnScrollListener之后onScrollStateChanged()和onScroll方法监听不到的问题

关于ListView设置了OnScrollListener之后onScrollStateChanged()和onScroll方法监听不到的问题: 原因: 首先OnScrollListene...
  • lyglostangel
  • lyglostangel
  • 2015年04月07日 15:45
  • 744

listview滑动事件OnScrollListener回调分析

1注解onbind 不要private和static。别忘了在oncreate()里注册绑定定义的监听器 分号;OnScrollListener回调分析 如果adapter中的数据量很大的时候...
  • TaooLee
  • TaooLee
  • 2016年01月22日 14:31
  • 624

Android 关于 OnScrollListener 事件顺序次数的简要分析

转载自:http://www.2cto.com/kf/201402/278552.html 在 Android 的 OnScrollListener 整个事件我主要分析下...
  • lv18092081172
  • lv18092081172
  • 2016年06月10日 20:39
  • 144

实现官方下拉刷新,增加自动加载更多

官方的下拉刷新出来也挺久了,效果也是比较炫酷,有比较多的应用都已经能看到它的身影了,关于SwipeRefreshLayout大家可以自己去官方查看 https://developer.android...
  • u013216593
  • u013216593
  • 2015年09月06日 19:54
  • 2614

使用OnScrollListener 来监听数据的改变

上一节我们谈到如何对listview进行简单的适配,这一节我们将对listview中的下拉事件进行监听。 首先在原来simplelisttest项目进行更改,使他继承OnScrollListener...
  • ooiuy450
  • ooiuy450
  • 2015年07月21日 12:03
  • 306
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:OnScrollListener回调分析
举报原因:
原因补充:

(最多只允许输入30个字)