android ScrollView滚动距离和判断滚动停止状态
今天很高兴,自己解决了判断ScrollView滚动停止的监听,现在分享给大家。
因为ScrollView没有像listView中的setOnScrollListener()监听,当然也就没有SCROLL_STATE_IDLE等。
解决的问题:
公司项目需要在一个列表中,类似listView,因为业务要求,这个列表是用拼凑的方法,拼凑出来的,所以外层包裹一层ScrollView。
现在公司要求,滑动到最后一条的时候,加载下一部分数据。如果使用scrollView.getScrollY()获得的是你手滑动的距离,当你松开手之后,界面会继续滑动,这个方法是获取不到新的Y值,所以,我们可以添加监听,时刻监视着ScrollView的变化。
需要先给ScrollView添加TouchListener ,在MotionEVENT.Up中,发送延迟的handler,这样就可以起到监听的作用。并且记录当前的高度lastY
在handler中,如果高度lastY和scrollView.getScrollY()是相等的,则表示,ScrollView已经停止,这时再根据你的要求判断停止之后的业务。这时的scrollView.getScrollY()就是控件滚动的距离。如果不相等,证明孩子啊滑动中,继续发handler继续记录lastY。
废话不多说,代码如下。希望对你有所帮助。
vBookDetail.setOnTouchListener(new OnTouchListener() {private int lastY = 0;private int touchEventId = -9983761;Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);View scroller = (View) msg.obj;if (msg.what == touchEventId) {if (lastY == scroller.getScrollY()) {//停止了,此处你的操作业务} else {handler.sendMessageDelayed(handler.obtainMessage(touchEventId, scroller), 1);lastY = scroller.getScrollY();}}}};@Overridepublic boolean onTouch(View v, MotionEvent event) {isScoll = false;int eventAction = event.getAction();int y = (int) event.getRawY();switch (eventAction) {case MotionEvent.ACTION_UP:handler.sendMessageDelayed(handler.obtainMessage(touchEventId, v), 5);break;default:break;}return false;}});
android ScrollView滚动距离和判断滚动停止状态相关推荐
- android scrollview居中,使用 HorizontalScrollView 实现滚动控制
功能要求是屏幕上固定显示 3 个 Layout 项(图片+文字),支持点击切换到选择的 Layout 项,并支持滑动切换到最近的 Layout 项. 最后的效果如下: 下面逐步上代码: 布局文件 ac ...
- android scrollview 滚动到底部判断,怎么判断android中ScrollView滑动到了最底部?
滚动到顶部判断: getScrollY() == 0 滚动到底部判断: View childView = getChildAt(0); childView.getMeasuredHeight() &l ...
- Android 仿拼多多可水平滚动RecyclerView,自定义滚动条滚动距离
Android 仿拼多多可水平滚动RecyclerView,自定义滚动条滚动距离 2020年,希望大家一切平安如意,毕竟这是个出人意料的多事之秋. 一.效果图: 二.快速实现: 1.主函数代码: im ...
- Android中通过Java代码实现ScrollView滚动视图-以歌词滚动为例
场景 实现效果如下 注: 博客: https://blog.csdn.net/badao_liumang_qizhi 关注公众号 霸道的程序猿 获取编程相关电子书.教程推送与免费下载. 实现 将布局改 ...
- Android ScrollView嵌套ScrollView滚动的问题解决办法
引用:http://mengsina.iteye.com/blog/1707464 http://fenglog.com/article.asp?id=449 Android ScrollView嵌套 ...
- 实用小技巧(一):UIScrollView中上下左右滚动方向的判断
https://www.jianshu.com/p/93e8459b6dae 2017.06.01 01:13* 字数 674 阅读 1201评论 0喜欢 1 2017.06.01 01:13* 字数 ...
- Android——仿淘宝头条垂直滚动广告
淘宝App大家用的都比较多了哈,最近看淘宝头条比较多,就来写个小例子吧. 垂直滚动广告的实现原理其实比较简单,就是定时更新列表内容嘛,然后列表切换的时候再加点炫酷的动画就OK了.如果对Android控 ...
- Android自定义View(广告栏上下滚动效果)
需求中涉及到的广告栏变化千变万化,这里,我们综合取材,有了下面的这篇文章. 开始的时候,我们使用的是MarqueeView,继承的ViewFlipper,但是会有一些bug,比如刷新数据时的重叠阴影等 ...
- android高仿天天动听,Android仿天天动听歌曲自动滚动view
最近项目中要做一个类似天天动听歌曲自动滚动行数的效果.首先自己想了下Android要滚动的那就是scroller类或者scrollto.scrollby结合了,或者view.layout()方法,或者 ...
最新文章
- c++动态分配二维数组
- pytorch 学习中安装的包
- AjaxPro2在Asp.net中的基本用法
- 决策树Decision Tree 及实现
- Linux下修改swap的大小
- 莫烦Tensorflow教程(15~22)
- ArcGIS实验教程——实验十三:栅格空间插值分析
- scrollIntoView()窗口滚动
- box-shadow属性四个值_flex笔记1——flex-direction属性
- thinkphp去重,distinct、group
- 至少连接一个aura sync兼容设备_EDA365:浅谈电磁兼容
- #1.生活小妙招-联想小新潮7000电脑摄像头打不开
- 天猫精灵家居对接第三方设备(详细版)
- HTML顶部状态栏更改背景,适合做导航栏背景的图片
- 2020网站/APP/Webshell在线查毒 电脑软件查毒大全
- 微机原理与系统设计三:微处理器的结构与功能
- 电脑重装了系统开不了机怎么办?
- PC的ARM的安全启动
- 亚马逊爆款的流量密码原来这么简单 六个步骤打造爆款
- PHP微勤,家E课 黄微勤 小学一年级作文二年级作文【写句子】百度...
热门文章
- 【Android 插件化】多开原理 | 使用插件化技术的恶意应用 | 插件化的其它风险 | 应用开发推荐方案
- 【Java 虚拟机原理】Java 引用类型 ( 强引用 | 软引用 | 弱引用 | 虚引用 | 静态变量 )
- 【设计模式】迭代器模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
- 【Android Gradle】安卓应用构建流程 ( Java 源码编译 和 AIDL 文件编译 )
- 【Android 文件管理】分区存储 ( MediaStore 文件操作 )
- 【组合数学】生成函数 ( 使用生成函数求解不定方程解个数示例 2 | 扩展到整数解 )
- 【组合数学】递推方程 ( 递推方程示例 1 | 列出递推方程 )
- 【Android 内存优化】使用 Memory Analyzer ( MAT ) 工具分析内存 ( MAT 工具使用 | 最大对象 | 类实例个数 | 引用与被引用 | GC Roots 最短链 )
- JSP自定义标签开发与打包
- BZOJ 2456 : mode