RecyclerView.SmoothScroller
public
static
abstract
class
RecyclerView.SmoothScroller
extends Object
java.lang.Object | |
↳ | androidx.recyclerview.widget.RecyclerView.SmoothScroller |
Base class for smooth scrolling. Handles basic tracking of the target view position and provides methods to trigger a programmatic scroll.
An instance of SmoothScroller is only intended to be used once. You should create a new
instance for each call to RecyclerView.LayoutManager.startSmoothScroll(SmoothScroller)
.
See also:
Summary
Nested classes | |
---|---|
class |
RecyclerView.SmoothScroller.Action
Holds information about a smooth scroll request by a |
interface |
RecyclerView.SmoothScroller.ScrollVectorProvider
An interface which is optionally implemented by custom |
Public constructors | |
---|---|
SmoothScroller()
|
Public methods | |
---|---|
PointF
|
computeScrollVectorForPosition(int targetPosition)
Compute the scroll vector for a given target position. |
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 |
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. |
Inherited methods | |
---|---|
Public constructors
SmoothScroller
public SmoothScroller ()
Public methods
computeScrollVectorForPosition
public PointF computeScrollVectorForPosition (int targetPosition)
Compute the scroll vector for a given target position.
This method can return null if the layout manager cannot calculate a scroll vector for the given position (e.g. it has no current scroll position).
Parameters | |
---|---|
targetPosition |
int : the position to which the scroller is scrolling |
Returns | |
---|---|
PointF |
the scroll vector for a given target position |
findViewByPosition
public View findViewByPosition (int position)
Parameters | |
---|---|
position |
int |
Returns | |
---|---|
View |
getChildCount
public int getChildCount ()
Returns | |
---|---|
int |
getLayoutManager
public RecyclerView.LayoutManager getLayoutManager ()
Returns | |
---|---|
RecyclerView.LayoutManager |
The LayoutManager to which this SmoothScroller is attached. Will return
null after the SmoothScroller is stopped.
|
getTargetPosition
public int getTargetPosition ()
Returns the adapter position of the target item
Returns | |
---|---|
int |
Adapter position of the target item or
RecyclerView.NO_POSITION if no target view is set.
|
instantScrollToPosition
public void instantScrollToPosition (int position)
This method is deprecated.
Use RecyclerView.SmoothScroller.Action.jumpTo(int)
.
Parameters | |
---|---|
position |
int |
See also:
isPendingInitialRun
public boolean isPendingInitialRun ()
Returns true if SmoothScroller has been started but has not received the first animation callback yet.
Returns | |
---|---|
boolean |
True if this SmoothScroller is waiting to start |
isRunning
public boolean isRunning ()
Returns | |
---|---|
boolean |
True if SmoothScroller is currently active |
setTargetPosition
public void setTargetPosition (int targetPosition)
Parameters | |
---|---|
targetPosition |
int |
Protected methods
normalize
protected void normalize (PointF scrollVector)
Normalizes the vector.
Parameters | |
---|---|
scrollVector |
PointF : The vector that points to the target scroll position
|
onSeekTargetStep
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 |
int : Last scroll amount horizontally |
dy |
int : Last scroll amount vertically |
state |
RecyclerView.State : Transient state of RecyclerView |
action |
RecyclerView.SmoothScroller.Action : If you want to trigger a new smooth scroll and cancel the previous one,
update this object.
|
onStart
protected abstract void onStart ()
Called when smooth scroll is started. This might be a good time to do setup.
onStop
protected abstract void onStop ()
Called when smooth scroller is stopped. This is a good place to cleanup your state etc.
See also:
onTargetFound
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 |
View : The view element which render the target position. |
state |
RecyclerView.State : Transient state of RecyclerView |
action |
RecyclerView.SmoothScroller.Action : Action instance that you should update to define final scroll action
towards the targetView
|
stop
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)
.
Content and code samples on this page are subject to the licenses described in the Content License. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2021-02-24 UTC.