对ListView滚动状态的监听
2015-05-30 09:16
330 查看
有的时候,我们需要对ListView滚动做一个相应的监听事件,例如:要实现如下图通讯录的功能:
![](https://img-blog.csdn.net/20131028020351843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvc21hY2gxOTkxNzEw/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
思路为:首先呢,中间那个"路"字为一个TextView,它与ListView采用相对布局的布局风格,当我们滑动ListView的时候
控制其显示,当ListView停止的时候就让其消失。
首先呢,ListView的滚动有三种状态
第一是静止状态,SCROLL_STATE_IDLE
第二是手指滚动状态,SCROLL_STATE_TOUCH_SCROLL
第三是手指不动了,但是屏幕还在滚动状态。SCROLL_STATE_FLING
下面是ListView滚动时的响应代码:
[java] view
plaincopy
<span style="font-size:18px">//响应ListView的滚动状态</span>
[java] view
plaincopy
<span style="font-size:18px">getListView().setOnScrollListener(new OnScrollListener() {
<span style="white-space:pre"> </span>int listViewScrollState;
/**
* ListView的状态改变时触发
* @param view
* @param scrollState
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
<span style="white-space:pre"> </span>listViewScrollState = scrollState;
switch(scrollState){
case OnScrollListener.SCROLL_STATE_IDLE://空闲状态
<span style="white-space:pre"> </span>break;
case OnScrollListener.SCROLL_STATE_FLING://滚动状态
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL://触摸后滚动
break;
}
}
/**
* 正在滚动
* firstVisibleItem第一个Item的位置
* visibleItemCount 可见的Item的数量
* totalItemCount item的总数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
//控制显示和隐藏的代码...
}
});</span>
思路为:首先呢,中间那个"路"字为一个TextView,它与ListView采用相对布局的布局风格,当我们滑动ListView的时候
控制其显示,当ListView停止的时候就让其消失。
首先呢,ListView的滚动有三种状态
第一是静止状态,SCROLL_STATE_IDLE
第二是手指滚动状态,SCROLL_STATE_TOUCH_SCROLL
第三是手指不动了,但是屏幕还在滚动状态。SCROLL_STATE_FLING
下面是ListView滚动时的响应代码:
[java] view
plaincopy
<span style="font-size:18px">//响应ListView的滚动状态</span>
[java] view
plaincopy
<span style="font-size:18px">getListView().setOnScrollListener(new OnScrollListener() {
<span style="white-space:pre"> </span>int listViewScrollState;
/**
* ListView的状态改变时触发
* @param view
* @param scrollState
*/
@Override
public void onScrollStateChanged(AbsListView view, int scrollState) {
<span style="white-space:pre"> </span>listViewScrollState = scrollState;
switch(scrollState){
case OnScrollListener.SCROLL_STATE_IDLE://空闲状态
<span style="white-space:pre"> </span>break;
case OnScrollListener.SCROLL_STATE_FLING://滚动状态
break;
case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL://触摸后滚动
break;
}
}
/**
* 正在滚动
* firstVisibleItem第一个Item的位置
* visibleItemCount 可见的Item的数量
* totalItemCount item的总数
*/
@Override
public void onScroll(AbsListView view, int firstVisibleItem,int visibleItemCount, int totalItemCount) {
//控制显示和隐藏的代码...
}
});</span>
相关文章推荐
- 最大子数组和系列
- Leetcode_217_Contains Duplicate
- Lettcode_217_Contains Duplicate
- C++中 引用&与取地址&的区别
- 初学Ext Js 5之二-------用sencha cmd生成项目
- SQL server 时间转换
- HDU 5242 上海大都会 G题
- OpenCV学习笔记02--利用滚动条控制视频;高斯滤波处理图像。
- 分布式文件系统简介
- 使用xcrun打包iOS应用
- js获取鼠标点击事件的相对位置
- 今日尼采一语
- 记录一下:Hibernate配置文件中数据库字段的对应类型
- 菜鸟好文推荐(五)——理解 HTTPS 协议
- Hibernate详细教程
- ubuntu下更改firefox的版本
- solve 3*3 magic square problem using recursive backtracking(using Stanford CS106b ADT library)
- 乔布斯给年轻人的62个忠告
- @UIColor colorWithPatternImage方法
- iOS图片拉伸技巧