2011-08-18 29 views
8

Özel bir View içinde kaydırma uygulamak için GestureDetector kullanıyorum. Benim uygulaması bu dayanmaktadır: kaydırma başlamadan önceGestureDetector onrollroll ile kaydırma Kaydırma

Smooth scrolling with inertia and edge resistance/snapback Ben kısa duraklama fark: Ben onScroll mesajlar incelenmiş ve ilki sadece başında farkedilir lag neden olan bir parmak daha büyük bir hareketin, sonra ulaştığı fark kaydırma Bundan sonra kaydırma düzgün.

O (btw setIsLongpressEnabled(false) ayarlanır) sadece motionevents arasında asgari bir mesafenin ardından onScroll mesaj göndermek GestureDetector başlar emin jest bir longtap değil yapmak veya dokunun görünüyor.

Bu davranışı değiştirmenin ve düşük düzeyli dokunma olaylarını kullanarak özel kaydırma hareketini uygulamadan düzgün kaydırma yapmanın bir yolu var mı?

cevap

10

Yanıt hayır, kendi GestureDetector ürününü oluşturmanız gerekmektedir. Android kaynak koduna bakarsanız (GestureDetector.java) 524 ila 540 arasındaki satırlar, tek dokunuş için "dokunma eğrisini" saptamak için kullanılır. Spesifik olarak 528 hattı, onScroll olayının hareketin dokunma eğiminin dışına gelinceye kadar çağrılmasını engeller (görünüm yapılandırmasından çekilir). Görünüm konfigürasyonunu değiştiremezsiniz ve slop 16 pikselde kodlanmıştır. Bu, gördüğünüz gecikmeye neden olan yarıçaptır.

İlgili konular