android - viewgroup可以用手指任意滑动,里面的 view 需要监听onLongClick和 onClick事件,如何不冲突?
伊谢尔伦
伊谢尔伦 2017-04-17 17:29:11
0
1
509

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

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

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回覆(1)
Peter_Zhu

子View 在接收到Down事件的時候,不消費該事件,而是通知父View 記錄本次Down 事件的target也就是當前子View.
也就是說Move,Cancel,Up事件都交給父View 處理
當Up事件發生的時候,父View 判斷觸摸point 的位移,小於一定值的時候認為沒有發生移動,也就是說本次事件是Click 事件.復原父View 位置然後手動調用target的click 事件
longclick 加一個計時器就OK

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板