簡體   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