监听ListView滚动到最底部
2015-05-30 09:19
281 查看
监听ListView滚动到最底部
监听ListView的滚动可以用两个东西:ListView.onScrollStateChanged (本文讲解这个listener的使用)
在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) {
}
});
我使用这个发现两个问题:
在模拟器上,如果使用鼠标的滚轮来滚动时执行 onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) 方法,不执行 onScrollStateChanged(AbsListView view, int scrollState) 方法。只有触摸往下滑动时,才执行onScrollStateChanged(AbsListView view,
int scrollState) 方法。有待考证。
SCROLL_STATE_TOUCH_SCROLL一定执行,然后下面可能执行SCROLL_STATE_FLING,也可能执行SCROLL_STATE_IDLE。这个是不确定的。有待考证。
相关文章推荐
- 【Best Time to Buy and Sell Stock II】cpp
- E: dpkg 被中断,您必须手工运行 sudo dpkg --configure -a 解决此问题。
- 图片懒加载
- 【整理】堆栈的特征与实现
- Android开发心得-ListView的监听事件
- oc基础学习NSString的创建和一些常用的方法
- 数全排列问题
- 对ListView滚动状态的监听
- 最大子数组和系列
- Leetcode_217_Contains Duplicate
- Lettcode_217_Contains Duplicate
- C++中 引用&与取地址&的区别
- 初学Ext Js 5之二-------用sencha cmd生成项目
- SQL server 时间转换
- HDU 5242 上海大都会 G题
- OpenCV学习笔记02--利用滚动条控制视频;高斯滤波处理图像。
- 分布式文件系统简介
- 使用xcrun打包iOS应用
- js获取鼠标点击事件的相对位置
- 今日尼采一语