www.999yzc.comviewgroup可以用手指任意滑动,里面的 view 需要监听onLongClick和 onClick事件,如何不冲突?

( www.999yzc.com )

目前正在做类似课程表的应用,需要手指触碰外部的 viewgroup, viewgroup 可以随意移动,里面的子 view 只要监听 onClick 和onLongClick 事件,请问有什么办法能够确保两者不冲突?

现在的情况是如果手指一开始放到 子 view 上面移动外部的 viewgroup 不能移动,onInterceptTouchEvent中只能从 down 开始捕获,然而这个不好判断,只能根据用户先触碰子 view 然后是否有滑动来判断捕获,可是那时事件已经在子 view 中消费了,viewgroup 也捕捉不到了,想问下有什么其他的方法来解决这个问题?

子 View 在接收到Down事件的时候,不消费该事件,而是通知父 View 记录本次 Down 事件的 target也就是当前子 View.
也就是说Move,Cancel,Up事件都交给父 View 处理
当Up事件发生的时候,父 View 判断触摸point 的位移,小于一定值的时候认为没有发生移动,也就是说本次事件是 Click 事件.复原父 View 位置然后手动调用target的 click 事件
longclick 加一个计时器就 OK

(看完/读完)这篇文章有何感想! www.999yzc.com的分享…

发表评论

电子邮件地址不会被公开。 必填项已用*标注