jp1017

jp1017

0个粉丝

78

问答

0

专栏

9

资料

jp1017  发布于  2015-08-21 13:17:25
采纳率 0%
78个问答
6080

ListView和GridView里滚动监听方法setOnScrollListener介绍

本帖最后由 jp1017 于 2015-8-21 13:37 编辑

今天在学习ListView的分批加载时用到了ListView的监听方法setOnScrollListener,昨天一个帖子里也讲到了最终的解决方案就是这个方法,帖子见这里:

由OOM问题引发的分析 http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=8526&fromuid=8410 (出处: 易百纳论坛)

下面介绍下这个方法:  

ListView和GridView里都有个滚动监听方法setOnScrollListener,这个方法在android.widget.AbsListView类里定义,而前面两个显示类都继承这里

这里以ListView介绍,GridView一样一样滴。。。

该方法的定义是这样的:

[attach]2853[/attach]

有唯一参数:AbsListView.OnScrollListener,api里这样介绍:

[attach]2854[/attach]

这个参数是一个接口,因此可以用匿名内部类或者内部类来添加这个参数。

接口里有两个方法:

[attach]2857[/attach]

[color=Red]1、方法onScrollStateChanged[/color]监听着ListView的滑动状态改变,有三种状态:

[attach]2855[/attach]

值是这样的:

[attach]2856[/attach]

SCROLL_STATE_TOUCH_SCROLL:手指正拖着ListView滑动

SCROLL_STATE_FLING:ListView正自由滑动

SCROLL_STATE_IDLE:ListView滑动后静止

[color=Red]2、方法onScroll[/color]监听滑动,用的频率超级高,所以不要做太多事情哦

里面的参数:

firstVisibleItem:表示在现时屏幕第一个ListItem(部分显示的ListItem也算)在整个ListView的位置(下标从0开始)

visibleItemCount:表示在现时屏幕可以见到的ListItem(部分显示的ListItem也算)总数

totalItemCount:表示ListView的ListItem总数

还有两个常用到的位置:

listView.getFirstVisiblePosition()表示在现时屏幕第一个ListItem(第一个ListItem部分显示也算)在整个ListView的位置(下标从0开始)

listView.getLastVisiblePosition()表示在现时屏幕最后一个ListItem(最后ListItem要完全显示出来才算)在整个ListView的位置(下标从0开始)

好了,就这样吧,大家看到了,api里写的很清楚的,这个api的下载看这里:

安卓开发所需的api文档和java文档分享 http://www.ebaina.com/bbs/forum.php?mod=viewthread&tid=8299&fromuid=8410 (出处: 易百纳论坛)

我来回答
回答0个
时间排序
认可量排序
易百纳技术社区暂无数据
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区