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 <romain...@google.com> 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 <linto...@gmail.com> 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 > romain...@android.com > > 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 android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---