There is some odd behaviour in the GestureDetector's onScroll() method in older versions of Android (like Gingerbread). The scroll positions are erratic (postive and negative values mixed together) even when the user is uniformly scrolling in a single direction. To smoothen this out, I am averaging the last two received x co-ordinates while scrolling. This results in a much smoother scrolling experience on older OS'es and does not adversly effect new OS'es.