Search code examples
androidgalaxyandroid-scrollviewandroid-2.3-gingerbreadandroid-overscoll

Samsung Galaxy S2 2.3.5+ not calling overScrollBy()


Seems like Samsung disabled their overscroll (probably due to an Apple suit).

I have an implementation of a view that extends ScrollView and overrides

    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY,int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)
    {
     ...
     return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, 0, metrics.widthPixels,isTouchEvent);
    }

On every other device (Gingerbread and up of course), overScrollBy is being called when the scroller reaches it's end, and the user can actually overscroll the view).

On Android 2.3.5+ Samsung have Implemented some kind of mechanism that disables overscroll completely (not just their overscroll implementation, but also Android's implementation), and every time a user tries to overscroll, the following LogCat event is being printed:

02-13 16:02:34.230: D/BounceScrollRunnableDefault(15783): run(), TimeFraction=0.5225, mBounceExtent=7.273352

Is there any way to unlock what Samsung did there? Or maybe another way to create an overscroller?


Solution

  • Problem solved, I have created my own OverScrollView, you are welcome to use it. https://github.com/EverythingMe/OverScrollView