于是我们首先想到,要保证flip手势检测,需要把所有的Touch Event都传到上层去 。
然而在分发逻辑之外还有一个逻辑,估计是为了保证每个触操作只能由一个View来进行完整响应,对事件有个额外的逻辑:如果某个View在处理事件时返回false(即该View未处理此事件),那么后续产生的其它事件将直接忽略掉这个View(不过又有另外的独立逻辑) 。举例来说就是,如果你处理时返回了false,那么你这个View将得不到或等等这些后续事件了 。
于是难题出现了,你若把Touch Event都想办法给传到上层了(只能通过返回false来传到上层),那么下层的各种子View就不能处理后续事件了 。
解决方案:
开始仅着眼于Touch Event处理完后的回传过程,想了N久不得,毕竟我想实现的是一个需要打破事件处理逻辑的效果(就是一个连续性操作,只有不满足上层要求时,才轮到下层处理) 。然后突然想到事件的分发过程,便豁然开朗:
覆写最上层的View的函数,代码如下:
@
( event) {
【Android ViewGroup中事件触发和传递机制】if (.(event)) {
event.(.);
super.(event);
于是效果实现 。也就是在分发之前便进行手势检测处理,若检测成功,则取消下层的一切处理过程 。
总结一下就是:t可以接受到所有的Touch事件,而则不一定 。
- 烟头中心温度可达多少度容易引起火灾
- 2023年中国高校计算机大赛
- 84消毒液中的84是什么意思 84消毒液中的84是什么意思?
- mysql使用varchar定义什么_mysql中varchar是什么类型
- android----R8混淆编译
- 深度学习中Epoch,Batchsize,Iterations
- 一文读懂深度学习中的Epoch,Batchsize
- 2023中秋国庆加班工资按三倍还是两倍算 2023年国庆中秋加班费怎么算
- 2023中秋节哪些生肖需要躲月 中秋躲月的由来
- 35kv是多少伏