ListView获取滑动(滚动)停止状态及响应事件

来源:互联网 发布:淘宝经营人贷款条件 编辑:程序博客网 时间:2024/05/26 17:48

有时候我们为了获得更好的用户体验,不得不对ListView的Item中的图片的资源进行动态加载,一般的做法就是当Item停止滚动时进行加载,并且仅仅加载当前可见的item的数据;

为我们可以为ListView设置OnScrollListener滚动监听器;这个监听器需要实现两个方法


public void onScrollStateChanged(AbsListView view, int scrollState) {    if (scrollState==0) {//当scrollState=0时说明ListView停止滚动                    }}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) {    MainActivity.this.firstVisibleItem=firstVisibleItem;    MainActivity.this.visibleItemCount=visibleItemCount;    if (visibleItemCount>0) {        if (isLocked) {            System.out.println("已锁住:"+isLocked);//这里为什么要用一个锁呢?因为有时候当我们第一次进入ListView时
     //visibleItemCount 可能为0;从而导致无法获取开始可见的数据;但是这个方法会执行好几次,
     //所以可以一直获取,知道visibleItemCount>0,之后也可能会执行此方法,为了不重复,
    //因此在第一次执行后锁住即可; 
} else { //这里可以处理数据 isLocked = true; System.out.println("VisibleItemCount>0 了 isLocked="+isLocked); } }
其实就是在
onScrollStateChanged()方法中获取滚动停止状态,当scrollState=0时滚动停止、=1时手指滚动、=2时(由于)手指滚动(手离开屏幕后)产生的惯性滚动。

0 0
原创粉丝点击