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
-~----------~----~----~----~------~----~------~--~---

Reply via email to