Android - listview未滚动触发onScroll
2016-12-21 16:37
288 查看
说明:
listview未滚动触发onScroll
解决:
利用OnScrollListener中的onScrollStateChanged方法中的scrollState
该方法有两个入参,第二个参数scrollState有三种状态:
此时我们可将焦点定位到 SCROLL_STATE_IDLE,将滚动到底部的判断和处理放在结束滚动之后。
这样就能操控onScroll的触发了。
总结:
onScroll 只有在scrollState等于1和2的时候调用。
其中1是手指没有离开屏幕的滑动,2是手指离开了屏幕的滑动,这两种状态的滑动onScroll一直被调用
0有两种情况:
1、手指不离开滑动中停止,然后离开屏幕会出现0
2、滑动过程中手指离开但是屏幕继续滑动自然停止后是0
再scrollState为0的时候不会调用onScroll
以上都自己打印log,手指操作一下就能理解了
listview未滚动触发onScroll
解决:
利用OnScrollListener中的onScrollStateChanged方法中的scrollState
public void onScrollStateChanged(AbsListView view, int scrollState);
该方法有两个入参,第二个参数scrollState有三种状态:
public static int SCROLL_STATE_IDLE = 0; //结束滚动 public static int SCROLL_STATE_TOUCH_SCROLL = 1; //触摸滚动 public static int SCROLL_STATE_FLING = 2; //手指离开屏幕后的滚动状态
此时我们可将焦点定位到 SCROLL_STATE_IDLE,将滚动到底部的判断和处理放在结束滚动之后。
@Override public void onScrollStateChanged(AbsListView view, int scrollState) { switch (scrollState) { case SCROLL_STATE_IDLE: boolean toBottom = view.getLastVisiblePosition() == view.getCount() - 1; if (toBottom && !isLoading && !isFinish) { //... } break; }
这样就能操控onScroll的触发了。
总结:
onScroll 只有在scrollState等于1和2的时候调用。
其中1是手指没有离开屏幕的滑动,2是手指离开了屏幕的滑动,这两种状态的滑动onScroll一直被调用
0有两种情况:
1、手指不离开滑动中停止,然后离开屏幕会出现0
2、滑动过程中手指离开但是屏幕继续滑动自然停止后是0
再scrollState为0的时候不会调用onScroll
以上都自己打印log,手指操作一下就能理解了
相关文章推荐
- Android ListView onScroll NullPointerException ListView滚动崩溃
- android 从源码分析为什么Listview初次显示时没滚动却自动调用onScroll方法的原因
- ListView 实现像Android Market那样 分页加载 滚动加载
- android listView 滚动加载显示
- 转载 Android ListView滚动提示等待框
- Android ListView 自定义背景后 滚动时的背景变黑问题
- 关于onScroll事件在IE6下每次滚动触发三次bug说明
- android中ListView滚动刷新
- Android的listview滚动时背景不让变黑解决办法
- ListView 实现像Android Market那样 分页加载 滚动加载
- Android listview怎么实现滚动分页
- Android ListView滚动提示
- 解决Android的ListView控件滚动时背景变黑
- android listview 滚动卡屏的处理方法
- Android ListView 自定义背景后 滚动时的背景变黑问题
- android中ListView滚动刷新
- [转载] ListView 实现像Android Market那样 分页加载 滚动加载
- Android的ListView控件滚动时背景问题 [转]
- Android的ListView在滚动时背景变成黑色的解决办法
- Android ListView的右边滚动滑块启用方法