[英]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.