Android 关于 OnScrollListener 事件简要分析
来源:互联网 发布:行业数据报告 编辑:程序博客网 时间:2024/05/30 04:40
在 Android 的 OnScrollListener 整个事件我主要分析下他的执行顺序:
实现滚动事件的监听接口
- new AbsListView.OnScrollListener(){
- @Override
- public void onScrollStateChanged(AbsListView absListView, int scrollState)
- {
- switch (scrollState) {
- case AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
- // 手指触屏拉动准备滚动,只触发一次 顺序: 2
- break;
- case AbsListView.OnScrollListener.SCROLL_STATE_FLING:
- // 持续滚动开始,只触发一次 顺序: 4
- break;
- case AbsListView.OnScrollListener.SCROLL_STATE_IDLE:
- // 整个滚动事件结束,只触发一次 顺序: 6
- break;
- default:
- break;
- }
- }
- @Override
- public void onScroll(AbsListView absListView, int i, int i1, int i2)
- {
- // 一直在滚动中,多次触发 顺序: 1、3、5
- }
- }
之前一直很迷糊,后来仔细测试后得出上面的结论
另外对于 ListView 图片列表的滚动,应该在
SCROLL_STATE_FLING 时让图片不显示,提高滚动性能让滚动小姑更平滑
SCROLL_STATE_IDLE 时显示当前屏幕可见的图片
对于 onScroll() 接口方法基本上不用他
之前看文档上的说法,用谷歌翻译出来以为 onScroll 方法是滚动完成后的回调,结果实测是滚动执行中的回调,列表稍滚动一段就要触发几十次
http://developer.android.com/reference/android/widget/AbsListView.OnScrollListener.html
不知是文档没描述对,还是翻译不准确,看他语态过去完成时应该是描述错了吧,感觉应该是 scrolling 才对
-----------------------------------------------------------------------------------------------------------------------
补充:
之前的顺序测试还不够细致,今天偶然测试间发现问题:
1. 当手指只轻触屏幕不拉动只会触发一次 onScroll 方法,不会触发其他滚动事件
2. 如果手指触碰屏幕后停滞一下再滑动则首先执行一次 onScroll 方法 然后才是 SCROLL_STATE_TOUCH_SCROLL 事件
3. 如果手指碰到屏幕后直接滑动则第一次就执行 SCROLL_STATE_TOUCH_SCROLL 事件
3. 触发 SCROLL_STATE_TOUCH_SCROLL 事件后还会继续多次触发 onScroll 事件,而不是直接触发 SCROLL_STATE_FLING 事件
4. 滚动后 不一定 会触发 SCROLL_STATE_FLING 事件,可能和手指滑动的距离有关系
5. 滚动的过程中会多次调用 onScroll 方法
6. 除了 onScroll 触发多次,其他事件在整个过程中只会触发一次
- Android 关于 OnScrollListener 事件简要分析
- Android 关于 OnScrollListener 事件顺序次数的简要分析
- Android 关于 OnScrollListener 事件顺序次数的简要分析
- Android 关于 OnScrollListener 事件顺序次数的简要分析
- Android 关于 OnScrollListener 事件顺序次数的简要分析
- Android 滚动事件 OnScrollListener
- Android触摸事件传递机制简要分析
- listview滑动事件OnScrollListener回调分析
- <Android>关于 Android 中的OnScrollListener监听接口
- Android OnScrollListener
- Android中OnScrollListener回调具体剖析 OnScrollListener回调分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- Android源代码简要分析
- android SensorManager简要分析
- PHP链接MYSQL数据库
- solr拼音检索
- Linux启动流程解析:init_post函数
- 表单提交的时候传参问题注意
- CSS实现背景透明/半透明效果 但内容文字不透明
- Android 关于 OnScrollListener 事件简要分析
- Deep Learning论文笔记之(四)CNN卷积神经网络推导和实现
- 个人论述 Native app (IOS) 和 Hybrid app 以及 Web app
- mybatis3.0.2整合spring3.0
- http协议简单介绍
- vim自动补全
- [试题分析] A &a=__NULL;填空题。
- Android ADB常用命令
- Android Webview 滑动监听