繁体   English   中英

dispatchTouchEvent 中的 ACTION_UP 事件被延迟触发

[英]ACTION_UP Event in dispatchTouchEvent is Getting Triggered Late

我做了一个滑动手势并从 ScrollView 中的 dispatchTouchEvent 跟踪它。 但是,一帧后检测到滑动手势的结束。 看下面最后两个事件,最后两个手势是 ACTION_MOVE 和 ACTION_UP。 但是他们的接触点是完全一样的,只是他们的事件时间不同。

行动= ACTION_MOVE中,x [0] = 734.165,Y [0] = 1241.4056,historySize = 2,EVENTTIME = 136103401行动= ACTION_ MOVE中,x [0] = 747.8897,Y [0] = 1077.508,historySize = 2,EVENTTIME = 136103418 action=ACTION_ UP , x[0]= 747.8897 , y[0]= 1077.508 , historySize=0, eventTime= 136103432

136103432 - 136103418 = 14。所以 ACTION_UP 在 14 毫秒后被检索。 这阻止了我在手指离开屏幕后立即执行的一些平滑效果。

您可以从这里查看完整日志: https : //zerobin.net/?a71539bf3862abdb#xXjCPrjk/Fi7l+N++9oivQkieFRQ3KA6gwQ0pU2NTYc=

那么,如何在 dispatchTouchEvent 中更早地检测到 ACTION_UP 呢?

在 ACTION_UP 发生之前,您无法检测到它。 用户可以将手指留在屏幕上几秒钟,因此您可能需要重新考虑您的设计

此问题已在 Android P 中修复。看起来 Google 决定进行一些真正的 UI 动画改进。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM