Android Dev Summit, October 23-24: two days of technical content, directly from the Android team. Sign-up for livestream updates.

ScrollerCompat

class ScrollerCompat
kotlin.Any
   ↳ androidx.core.widget.ScrollerCompat

Provides access to new Scroller APIs when available.

This class provides a platform version-independent mechanism for obeying the current device's preferred scroll physics and fling behavior. It offers a subset of the APIs from Scroller or OverScroller.

Summary

Public methods

Unit

Stops the animation.

Boolean

Call this when you want to know the new location.

static ScrollerCompat!
create(context: Context!)

static ScrollerCompat!
create(context: Context!, interpolator: Interpolator!)

Unit
fling(startX: Int, startY: Int, velocityX: Int, velocityY: Int, minX: Int, maxX: Int, minY: Int, maxY: Int)

Start scrolling based on a fling gesture.

Unit
fling(startX: Int, startY: Int, velocityX: Int, velocityY: Int, minX: Int, maxX: Int, minY: Int, maxY: Int, overX: Int, overY: Int)

Start scrolling based on a fling gesture.

Float

Returns the current velocity on platform versions that support it.

Int

Returns the current X offset in the scroll.

Int

Returns the current Y offset in the scroll.

Int

Int

Boolean

Returns whether the scroller has finished scrolling.

Boolean

Returns whether the current Scroller is currently returning to a valid position.

Unit
notifyHorizontalEdgeReached(startX: Int, finalX: Int, overX: Int)

Notify the scroller that we've reached a horizontal boundary.

Unit
notifyVerticalEdgeReached(startY: Int, finalY: Int, overY: Int)

Notify the scroller that we've reached a vertical boundary.

Boolean
springBack(startX: Int, startY: Int, minX: Int, maxX: Int, minY: Int, maxY: Int)

Call this when you want to 'spring back' into a valid coordinate range.

Unit
startScroll(startX: Int, startY: Int, dx: Int, dy: Int)

Start scrolling by providing a starting point and the distance to travel.

Unit
startScroll(startX: Int, startY: Int, dx: Int, dy: Int, duration: Int)

Start scrolling by providing a starting point and the distance to travel.

Public methods

abortAnimation

fun abortAnimation(): Unit

Deprecated: Use OverScroller#abortAnimation() directly.

Stops the animation. Aborting the animation causes the scroller to move to the final x and y position.

computeScrollOffset

fun computeScrollOffset(): Boolean

Deprecated: Use OverScroller#computeScrollOffset() directly.

Call this when you want to know the new location. If it returns true, the animation is not yet finished. loc will be altered to provide the new location.

create

static fun create(context: Context!): ScrollerCompat!

Deprecated: Use OverScroller constructor directly.

create

static fun create(context: Context!, interpolator: Interpolator!): ScrollerCompat!

Deprecated: Use OverScroller constructor directly.

fling

fun fling(startX: Int, startY: Int, velocityX: Int, velocityY: Int, minX: Int, maxX: Int, minY: Int, maxY: Int): Unit

Deprecated: Use OverScroller#fling(int, int, int, int, int, int, int, int) directly.

Start scrolling based on a fling gesture. The distance travelled will depend on the initial velocity of the fling.

Parameters
startX Int: Starting point of the scroll (X)
startY Int: Starting point of the scroll (Y)
velocityX Int: Initial velocity of the fling (X) measured in pixels per second.
velocityY Int: Initial velocity of the fling (Y) measured in pixels per second
minX Int: Minimum X value. The scroller will not scroll past this point.
maxX Int: Maximum X value. The scroller will not scroll past this point.
minY Int: Minimum Y value. The scroller will not scroll past this point.
maxY Int: Maximum Y value. The scroller will not scroll past this point.

fling

fun fling(startX: Int, startY: Int, velocityX: Int, velocityY: Int, minX: Int, maxX: Int, minY: Int, maxY: Int, overX: Int, overY: Int): Unit

Deprecated: Use OverScroller#fling(int, int, int, int, int, int, int, int, int, int) directly.

Start scrolling based on a fling gesture. The distance travelled will depend on the initial velocity of the fling.

Parameters
startX Int: Starting point of the scroll (X)
startY Int: Starting point of the scroll (Y)
velocityX Int: Initial velocity of the fling (X) measured in pixels per second.
velocityY Int: Initial velocity of the fling (Y) measured in pixels per second
minX Int: Minimum X value. The scroller will not scroll past this point.
maxX Int: Maximum X value. The scroller will not scroll past this point.
minY Int: Minimum Y value. The scroller will not scroll past this point.
maxY Int: Maximum Y value. The scroller will not scroll past this point.
overX Int: Overfling range. If > 0, horizontal overfling in either direction will be possible.
overY Int: Overfling range. If > 0, vertical overfling in either direction will be possible.

getCurrVelocity

fun getCurrVelocity(): Float

Deprecated: Use OverScroller#getCurrVelocity() directly.

Returns the current velocity on platform versions that support it.

This method should only be used as input for nonessential visual effects such as EdgeEffectCompat.

Return
Float: The original velocity less the deceleration. Result may be negative.

getCurrX

fun getCurrX(): Int

Deprecated: Use OverScroller#getCurrX() directly.

Returns the current X offset in the scroll.

Return
Int: The new X offset as an absolute distance from the origin.

getCurrY

fun getCurrY(): Int

Deprecated: Use OverScroller#getCurrY() directly.

Returns the current Y offset in the scroll.

Return
Int: The new Y offset as an absolute distance from the origin.

getFinalX

fun getFinalX(): Int

Deprecated: Use OverScroller#getFinalX() directly.

Return
Int: The final X position for the scroll in progress, if known.

getFinalY

fun getFinalY(): Int

Deprecated: Use OverScroller#getFinalY() directly.

Return
Int: The final Y position for the scroll in progress, if known.

isFinished

fun isFinished(): Boolean

Deprecated: Use OverScroller#isFinished() directly.

Returns whether the scroller has finished scrolling.

Return
Boolean: True if the scroller has finished scrolling, false otherwise.

isOverScrolled

fun isOverScrolled(): Boolean

Deprecated: Use OverScroller#isOverScrolled() directly.

Returns whether the current Scroller is currently returning to a valid position. Valid bounds were provided by the fling(int, int, int, int, int, int, int, int, int, int) method. One should check this value before calling startScroll(int, int, int, int) as the interpolation currently in progress to restore a valid position will then be stopped. The caller has to take into account the fact that the started scroll will start from an overscrolled position.

Return
Boolean: true when the current position is overscrolled and in the process of interpolating back to a valid value.

notifyHorizontalEdgeReached

fun notifyHorizontalEdgeReached(startX: Int, finalX: Int, overX: Int): Unit

Deprecated: Use OverScroller#notifyHorizontalEdgeReached(int, int, int) directly.

Notify the scroller that we've reached a horizontal boundary. Normally the information to handle this will already be known when the animation is started, such as in a call to one of the fling functions. However there are cases where this cannot be known in advance. This function will transition the current motion and animate from startX to finalX as appropriate.

Parameters
startX Int: Starting/current X position
finalX Int: Desired final X position
overX Int: Magnitude of overscroll allowed. This should be the maximum desired distance from finalX. Absolute value - must be positive.

notifyVerticalEdgeReached

fun notifyVerticalEdgeReached(startY: Int, finalY: Int, overY: Int): Unit

Deprecated: Use OverScroller#notifyVerticalEdgeReached(int, int, int) directly.

Notify the scroller that we've reached a vertical boundary. Normally the information to handle this will already be known when the animation is started, such as in a call to one of the fling functions. However there are cases where this cannot be known in advance. This function will animate a parabolic motion from startY to finalY.

Parameters
startY Int: Starting/current Y position
finalY Int: Desired final Y position
overY Int: Magnitude of overscroll allowed. This should be the maximum desired distance from finalY. Absolute value - must be positive.

springBack

fun springBack(startX: Int, startY: Int, minX: Int, maxX: Int, minY: Int, maxY: Int): Boolean

Deprecated: Use OverScroller#springBack(int, int, int, int, int, int) directly.

Call this when you want to 'spring back' into a valid coordinate range.

Parameters
startX Int: Starting X coordinate
startY Int: Starting Y coordinate
minX Int: Minimum valid X value
maxX Int: Maximum valid X value
minY Int: Minimum valid Y value
maxY Int: Maximum valid Y value
Return
Boolean: true if a springback was initiated, false if startX and startY were already within the valid range.

startScroll

fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int): Unit

Deprecated: Use OverScroller#getCurrX() directly.

Start scrolling by providing a starting point and the distance to travel. The scroll will use the default value of 250 milliseconds for the duration.

Parameters
startX Int: Starting horizontal scroll offset in pixels. Positive numbers will scroll the content to the left.
startY Int: Starting vertical scroll offset in pixels. Positive numbers will scroll the content up.
dx Int: Horizontal distance to travel. Positive numbers will scroll the content to the left.
dy Int: Vertical distance to travel. Positive numbers will scroll the content up.

startScroll

fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int, duration: Int): Unit

Deprecated: Use OverScroller#startScroll(int, int, int, int, int) directly.

Start scrolling by providing a starting point and the distance to travel.

Parameters
startX Int: Starting horizontal scroll offset in pixels. Positive numbers will scroll the content to the left.
startY Int: Starting vertical scroll offset in pixels. Positive numbers will scroll the content up.
dx Int: Horizontal distance to travel. Positive numbers will scroll the content to the left.
dy Int: Vertical distance to travel. Positive numbers will scroll the content up.
duration Int: Duration of the scroll in milliseconds.