Android(安卓)- listview未滚动触发onScroll
16lz
2021-12-04
说明:
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,将滚动到底部的判断和处理放在结束滚动之后。@Overridepublic 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 DIY 2
- android左右滑动加载分页以及动态加载数据
- Android(安卓)SlidingTabLayout+不可手动横向滑动的ViewPager
- Android手势操作(双击,长按,滑动,滚动,多点触控)
- 【Android(安卓)UI】ViewPager禁止滚动
- android 自定义View 滚动选择器PickerView
- Android(安卓)ViewPager+Fragment实现首页滑动翻页
- android左右滑动翻页查看图片
- Android监听WebView滑动到底部