博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何让安卓的进度条在被触摸后立即开始调整数值?
阅读量:4090 次
发布时间:2019-05-25

本文共 762 字,大约阅读时间需要 2 分钟。

默认的seekbar,在触摸开始后,不会立即调整数值。只有在触摸停止,或者滑动一段距离后,才会有视觉上的进度变化,这样的进度条,反应太慢,不够灵敏。

怎么实现按下后立即拖动?可以在触摸开始后,手动调用背后的方法。

sysVolSeek.setOnTouchListener((v, event) -> {			if (event.getActionMasked()==MotionEvent.ACTION_DOWN) {				try {					Method mm = AbsSeekBar.class.getDeclaredMethod("trackTouchEvent", MotionEvent.class);					mm.setAccessible(true);					mm.invoke(v, event);					return true;				} catch (Exception e) {					e.printStackTrace();				}			}			return false;		});

这是我翻出来的,自己在几年前写的代码,用到了反射,但答案真的是这样吗?于是我把反射的代码移除,发现也可以……

sysVolSeek.setOnTouchListener((v, event) -> event.getActionMasked()== MotionEvent.ACTION_DOWN);

只要在 ACTION_DOWN 的时候返回 true就可以了,这是为什么呢,之前并未给进度条设置触摸监听器,而是在父容器的 intercepttouch 中直接反射调用 trackTouchEvent。

录屏演示

这样的便利性往往被人所忽略,因为追求表面的华丽是容易的,追求真正的以人为本才是难题。

转载地址:http://jmbii.baihongyu.com/

你可能感兴趣的文章
网络游戏客户端的日志输出
查看>>
关于按钮的mouseOver和rollOver
查看>>
Netty框架
查看>>
Socket经验记录
查看>>
对RTMP视频流进行BitmapData.draw()出错的解决办法
查看>>
FMS 客户端带宽计算、带宽限制
查看>>
SecurityError Error 2148 SWF 不能访问本地资源
查看>>
Qt 静态编译后的exe太大, 可以这样压缩.
查看>>
3D游戏常用技巧Normal Mapping (法线贴图)原理解析——基础篇
查看>>
乘法逆元
查看>>
Objective-C 基础入门(一)
查看>>
Objective-C 基础入门(三) 读写文件与回调
查看>>
C++ STL标准库与泛型编程(一)概述
查看>>
C++ STL标准库与泛型编程(四)Deque、Queue、Stack 深度探索
查看>>
C++ STL标准库 算法
查看>>
JVM内存模型_Minor GC笔记
查看>>
SpringCloud学习之PassCloud——(一)PassCloud源代码下载
查看>>
Linux下安装Python环境并部署NLP项目
查看>>
Nginx篇-springCloud配置Gateway+Nginx进行反向代理和负载均衡
查看>>
缓存篇-Redis缓存失效以及解决方案
查看>>