Unfortunately I don't see any possible workaround :( On Tue, Mar 31, 2009 at 11:40 AM, focuser <[email protected]> wrote: > > Thanks Romain, > > I have just filed it http://code.google.com/p/android/issues/detail?id=2337. > > But before it's fixed in a new release, is there any workaround or I > will have to play with the VelocityTracker myself? > > On Mar 31, 10:39 am, Romain Guy <[email protected]> wrote: >> Hi, >> >> It looks like a bug in the VelocityTracker. Can you please file it at >> b.android.com? Thanks >> >> >> >> On Tue, Mar 31, 2009 at 10:28 AM, focuser <[email protected]> wrote: >> >> > Hi, >> >> > I'm trying to use a GestureDetector in a subclass of FrameLayout, >> > which has a child ListView. >> > But it seems the GestureDetector has some side effect which causes >> > abnormal scrolling behaviors for the child ListView, e.g. sometime >> > when flinging down, the list actually scrolls upwards; when the list >> > is being flung (i.e. the scrolling animation is still playing) and you >> > press and hold on the list, the scroling stops (which is normal), but >> > as soon as you release, the list scrolls. >> >> > The code for the layout is shown below. Apparently it actually does >> > nothing extra but calling GestureDetector.onTouchEvent(). If the line >> > "boolean handled = mGestureDetector.onTouchEvent(ev);" is commented >> > out, the child ListView will scroll as normal. Is it because the call >> > to onTouchEvent() takes some time that confuses the child ListView? >> >> > Also, it seems this problem only occurs when the list item is complex, >> > e.g. consisting of multiple ImageViews, TextView etc. Everything >> > works fine if it's just a list of TextView's. >> >> > public class MyLayout extends FrameLayout implements OnGestureListener >> > { >> > ... >> > �...@override >> > public boolean dispatchTouchEvent(MotionEvent ev) { >> > boolean handled = mGestureDetector.onTouchEvent(ev); >> > return super.dispatchTouchEvent(ev); >> > } >> >> > public void onShowPress(MotionEvent e) { >> > } >> >> > public boolean onSingleTapUp(MotionEvent e) { >> > return false; >> > } >> >> > public void onLongPress(MotionEvent e) { >> > } >> >> > public boolean onDown(MotionEvent e) { >> > return false; >> > } >> >> > public boolean onFling(MotionEvent e1, MotionEvent e2, float >> > velocityX, >> > float velocityY) { >> > return false; >> > } >> >> > public boolean onScroll(MotionEvent e1, MotionEvent e2, float >> > distanceX, >> > float distanceY) { >> > return false; >> > } >> > } >> >> -- >> Romain Guy >> Android framework engineer >> [email protected] >> >> Note: please don't send private questions to me, as I don't have time >> to provide private support. All such questions should be posted on >> public forums, where I and others can see and answer them > > >
-- Romain Guy Android framework engineer [email protected] Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

