added in version 22.1.0
belongs to Maven artifact com.android.support:recyclerview-v7:28.0.0-alpha1

LinearSmoothScroller

public class LinearSmoothScroller
extends RecyclerView.SmoothScroller

java.lang.Object
   ↳ android.support.v7.widget.RecyclerView.SmoothScroller
     ↳ android.support.v7.widget.LinearSmoothScroller


RecyclerView.SmoothScroller implementation which uses a LinearInterpolator until the target position becomes a child of the RecyclerView and then uses a DecelerateInterpolator to slowly approach to target position.

If the RecyclerView.LayoutManager you are using does not implement the RecyclerView.SmoothScroller.ScrollVectorProvider interface, then you must override the computeScrollVectorForPosition(int) method. All the LayoutManagers bundled with the support library implement this interface.

Summary

Constants

int SNAP_TO_ANY

Decides if the child should be snapped from start or end, depending on where it currently is in relation to its parent.

int SNAP_TO_END

Align child view's right or bottom with parent view's right or bottom

int SNAP_TO_START

Align child view's left or top with parent view's left or top

Fields

protected final DecelerateInterpolator mDecelerateInterpolator

protected int mInterimTargetDx

protected int mInterimTargetDy

protected final LinearInterpolator mLinearInterpolator

protected PointF mTargetVector

Public constructors

LinearSmoothScroller(Context context)

Public methods

int calculateDtToFit(int viewStart, int viewEnd, int boxStart, int boxEnd, int snapPreference)

Helper method for calculateDxToMakeVisible(android.view.View, int) and calculateDyToMakeVisible(android.view.View, int)

int calculateDxToMakeVisible(View view, int snapPreference)

Calculates the horizontal scroll amount necessary to make the given view fully visible inside the RecyclerView.

int calculateDyToMakeVisible(View view, int snapPreference)

Calculates the vertical scroll amount necessary to make the given view fully visible inside the RecyclerView.

Protected methods

float calculateSpeedPerPixel(DisplayMetrics displayMetrics)

Calculates the scroll speed.

int calculateTimeForDeceleration(int dx)

Calculates the time for deceleration so that transition from LinearInterpolator to DecelerateInterpolator looks smooth.

int calculateTimeForScrolling(int dx)

Calculates the time it should take to scroll the given distance (in pixels)

int getHorizontalSnapPreference()

When scrolling towards a child view, this method defines whether we should align the left or the right edge of the child with the parent RecyclerView.

int getVerticalSnapPreference()

When scrolling towards a child view, this method defines whether we should align the top or the bottom edge of the child with the parent RecyclerView.

void onSeekTargetStep(int dx, int dy, RecyclerView.State state, RecyclerView.SmoothScroller.Action action)

RecyclerView will call this method each time it scrolls until it can find the target position in the layout.

void onStart()

Called when smooth scroll is started.

void onStop()

Called when smooth scroller is stopped.

void onTargetFound(View targetView, RecyclerView.State state, RecyclerView.SmoothScroller.Action action)

Called when the target position is laid out.

void updateActionForInterimTarget(RecyclerView.SmoothScroller.Action action)

When the target scroll position is not a child of the RecyclerView, this method calculates a direction vector towards that child and triggers a smooth scroll.

Inherited methods

From class android.support.v7.widget.RecyclerView.SmoothScroller
From class java.lang.Object

Constants

SNAP_TO_ANY

added in version 22.1.0
int SNAP_TO_ANY

Decides if the child should be snapped from start or end, depending on where it currently is in relation to its parent.

For instance, if the view is virtually on the left of RecyclerView, using SNAP_TO_ANY is the same as using SNAP_TO_START

Constant Value: 0 (0x00000000)

SNAP_TO_END

added in version 22.1.0
int SNAP_TO_END

Align child view's right or bottom with parent view's right or bottom

Constant Value: 1 (0x00000001)

SNAP_TO_START

added in version 22.1.0
int SNAP_TO_START

Align child view's left or top with parent view's left or top

Constant Value: -1 (0xffffffff)

Fields

mDecelerateInterpolator

added in version 22.1.0
DecelerateInterpolator mDecelerateInterpolator

mInterimTargetDx

added in version 22.1.0
int mInterimTargetDx

mInterimTargetDy

added in version 22.1.0
int mInterimTargetDy

mLinearInterpolator

added in version 22.1.0
LinearInterpolator mLinearInterpolator

mTargetVector

added in version 22.1.0
PointF mTargetVector

Public constructors

LinearSmoothScroller

added in version 22.1.0
LinearSmoothScroller (Context context)

Parameters
context Context

Public methods

calculateDtToFit

added in version 22.1.0
int calculateDtToFit (int viewStart, 
                int viewEnd, 
                int boxStart, 
                int boxEnd, 
                int snapPreference)

Helper method for calculateDxToMakeVisible(android.view.View, int) and calculateDyToMakeVisible(android.view.View, int)

Parameters
viewStart int

viewEnd int

boxStart int

boxEnd int