Difference between onScroll() and onFling() of GestureDetector

Mulgard picture Mulgard · Jan 22, 2015 · Viewed 9.8k times · Source

What is the difference between onScroll() and onFling() in the GestureDetector interface? When I print out the events they are showing the exact same things. At least the last onScroll() and the onFling().

The only true difference I noticed is that onScroll() is called much more often, fling always just one time.

Answer

Jorgesys picture Jorgesys · Jan 22, 2015

The difference between Scroll and fling

onFling: is that the user lifts his finger in the end of the movement (that is the reason for what onFling is called one time).

onScroll: is the general process of moving the viewport (that is, the 'window' of content you're looking at).

Understand Scrolling Terminology "Scrolling" is a word that can take on different meanings in Android, depending on the context.

Scrolling is the general process of moving the viewport (that is, the 'window' of content you're looking at). When scrolling is in both the x and y axes, it's called panning. The sample application provided with this class, InteractiveChart, illustrates two different types of scrolling, dragging and flinging:

  • Dragging is the type of scrolling that occurs when a user drags her finger across the touch screen. Simple dragging is often implemented by overriding onScroll() in GestureDetector.OnGestureListener. For more discussion of dragging, see Dragging and Scaling.

  • Flinging is the type of scrolling that occurs when a user drags and lifts her finger quickly. After the user lifts her finger, you generally want to keep scrolling (moving the viewport), but decelerate until the viewport stops moving. Flinging can be implemented by overriding onFling() in GestureDetector.OnGestureListener, and by using a scroller object.