Android APIs
public static abstract class

RecyclerView.SmoothScroller

extends Object
java.lang.Object
   ↳ android.support.v7.widget.RecyclerView.SmoothScroller
Known Direct Subclasses

Class Overview

Base class for smooth scrolling. Handles basic tracking of the target view position and provides methods to trigger a programmatic scroll.

Summary

Nested Classes
class RecyclerView.SmoothScroller.Action Holds information about a smooth scroll request by a RecyclerView.SmoothScroller
Public Constructors
RecyclerView.SmoothScroller()
Public Methods
View findViewByPosition(int position)
int getChildCount()
int getChildPosition(View view)
RecyclerView.LayoutManager getLayoutManager()
int getTargetPosition()
Returns the adapter position of the target item
void instantScrollToPosition(int position)
This method is deprecated. Use jumpTo(int).
boolean isPendingInitialRun()
Returns true if SmoothScroller has been started but has not received the first animation callback yet.
boolean isRunning()
void setTargetPosition(int targetPosition)
Protected Methods
void normalize(PointF scrollVector)
Normalizes the vector.
void onChildAttachedToWindow(View child)
abstract 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.

abstract void onStart()
Called when smooth scroll is started.
abstract void onStop()
Called when smooth scroller is stopped.
abstract void onTargetFound(View targetView, RecyclerView.State state, RecyclerView.SmoothScroller.Action action)
Called when the target position is laid out.
final void stop()
Stops running the SmoothScroller in each animation callback.
[Expand]
Inherited Methods
From class java.lang.Object

Public Constructors

public RecyclerView.SmoothScroller ()

Public Methods

public View findViewByPosition (int position)

public int getChildCount ()

See Also

public int getChildPosition (View view)

public RecyclerView.LayoutManager getLayoutManager ()

Returns
  • The LayoutManager to which this SmoothScroller is attached. Will return null after the SmoothScroller is stopped.

public int getTargetPosition ()

Returns the adapter position of the target item

Returns
  • Adapter position of the target item or NO_POSITION if no target view is set.

public void instantScrollToPosition (int position)

This method is deprecated.
Use jumpTo(int).

public boolean isPendingInitialRun ()

Returns true if SmoothScroller has been started but has not received the first animation callback yet.

Returns
  • True if this SmoothScroller is waiting to start

public boolean isRunning ()

Returns
  • True if SmoothScroller is currently active

public void setTargetPosition (int targetPosition)

Protected Methods

protected void normalize (PointF scrollVector)

Normalizes the vector.

Parameters
scrollVector The vector that points to the target scroll position

protected void onChildAttachedToWindow (View child)

protected abstract 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.

SmoothScroller should check dx, dy and if scroll should be changed, update the provided RecyclerView.SmoothScroller.Action to define the next scroll.

Parameters
dx Last scroll amount horizontally
dy Last scroll amount verticaully
state Transient state of RecyclerView
action If you want to trigger a new smooth scroll and cancel the previous one, update this object.

protected abstract void onStart ()

Called when smooth scroll is started. This might be a good time to do setup.

protected abstract void onStop ()

Called when smooth scroller is stopped. This is a good place to cleanup your state etc.

See Also

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

Called when the target position is laid out. This is the last callback SmoothScroller will receive and it should update the provided RecyclerView.SmoothScroller.Action to define the scroll details towards the target view.

Parameters
targetView The view element which render the target position.
state Transient state of RecyclerView
action Action instance that you should update to define final scroll action towards the targetView

protected final void stop ()

Stops running the SmoothScroller in each animation callback. Note that this does not cancel any existing RecyclerView.SmoothScroller.Action updated by onTargetFound(android.view.View, RecyclerView.State, SmoothScroller.Action) or onSeekTargetStep(int, int, RecyclerView.State, SmoothScroller.Action).