PagerSnapHelper
public
class
PagerSnapHelper
extends SnapHelper
java.lang.Object | |||
↳ | androidx.recyclerview.widget.RecyclerView.OnFlingListener | ||
↳ | androidx.recyclerview.widget.SnapHelper | ||
↳ | androidx.recyclerview.widget.PagerSnapHelper |
Implementation of the SnapHelper
supporting pager style snapping in either vertical or
horizontal orientation.
PagerSnapHelper can help achieve a similar behavior to
ViewPager
. Set both RecyclerView
and the items of the
RecyclerView.Adapter
to have
ViewGroup.LayoutParams.MATCH_PARENT
height and width and then attach
PagerSnapHelper to the RecyclerView
using SnapHelper.attachToRecyclerView(RecyclerView)
.
Summary
Public constructors | |
---|---|
PagerSnapHelper()
|
Public methods | |
---|---|
int[]
|
calculateDistanceToFinalSnap(RecyclerView.LayoutManager layoutManager, View targetView)
Override this method to snap to a particular point within the target view or the container view on any axis. |
View
|
findSnapView(RecyclerView.LayoutManager layoutManager)
Override this method to provide a particular target view for snapping. |
int
|
findTargetSnapPosition(RecyclerView.LayoutManager layoutManager, int velocityX, int velocityY)
Override to provide a particular adapter target position for snapping. |
Protected methods | |
---|---|
RecyclerView.SmoothScroller
|
createScroller(RecyclerView.LayoutManager layoutManager)
Creates a scroller to be used in the snapping implementation. |
Inherited methods | |
---|---|
Public constructors
PagerSnapHelper
public PagerSnapHelper ()
Public methods
calculateDistanceToFinalSnap
public int[] calculateDistanceToFinalSnap (RecyclerView.LayoutManager layoutManager, View targetView)
Override this method to snap to a particular point within the target view or the container view on any axis.
This method is called when the SnapHelper
has intercepted a fling and it needs
to know the exact distance required to scroll by in order to snap to the target view.
Parameters | |
---|---|
layoutManager |
RecyclerView.LayoutManager : the RecyclerView.LayoutManager associated with the attached
RecyclerView |
targetView |
View : the target view that is chosen as the view to snap |
Returns | |
---|---|
int[] |
the output coordinates the put the result into. out[0] is the distance on horizontal axis and out[1] is the distance on vertical axis. |
findSnapView
public View findSnapView (RecyclerView.LayoutManager layoutManager)
Override this method to provide a particular target view for snapping.
This method is called when the SnapHelper
is ready to start snapping and requires
a target view to snap to. It will be explicitly called when the scroll state becomes idle
after a scroll. It will also be called when the SnapHelper
is preparing to snap
after a fling and requires a reference view from the current set of child views.
If this method returns null
, SnapHelper will not snap to any view.
Parameters | |
---|---|
layoutManager |
RecyclerView.LayoutManager : the RecyclerView.LayoutManager associated with the attached
RecyclerView |
Returns | |
---|---|
View |
the target view to which to snap on fling or end of scroll |
findTargetSnapPosition
public int findTargetSnapPosition (RecyclerView.LayoutManager layoutManager, int velocityX, int velocityY)
Override to provide a particular adapter target position for snapping.
Parameters | |
---|---|
layoutManager |
RecyclerView.LayoutManager : the RecyclerView.LayoutManager associated with the attached
RecyclerView |
velocityX |
int : fling velocity on the horizontal axis |
velocityY |
int : fling velocity on the vertical axis |
Returns | |
---|---|
int |
the target adapter position to you want to snap or RecyclerView.NO_POSITION
if no snapping should happen
|
Protected methods
createScroller
protected RecyclerView.SmoothScroller createScroller (RecyclerView.LayoutManager layoutManager)
Creates a scroller to be used in the snapping implementation.
Parameters | |
---|---|
layoutManager |
RecyclerView.LayoutManager : The RecyclerView.LayoutManager associated with the attached
RecyclerView . |
Returns | |
---|---|
RecyclerView.SmoothScroller |
a RecyclerView.SmoothScroller which will handle the scrolling.
|