SnapHelper

public abstract class SnapHelper
extends RecyclerView.OnFlingListener

java.lang.Object
   ↳ androidx.recyclerview.widget.RecyclerView.OnFlingListener
     ↳ androidx.recyclerview.widget.SnapHelper


Class intended to support snapping for a RecyclerView.

SnapHelper tries to handle fling as well but for this to work properly, the RecyclerView.LayoutManager must implement the RecyclerView.SmoothScroller.ScrollVectorProvider interface or you should override onFling(int, int) and handle fling manually.

Summary

Public constructors

SnapHelper()

Public methods

void attachToRecyclerView(RecyclerView recyclerView)

Attaches the SnapHelper to the provided RecyclerView, by calling RecyclerView.setOnFlingListener(RecyclerView.OnFlingListener).

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

int[] calculateScrollDistance(int velocityX, int velocityY)

Calculated the estimated scroll distance in each direction given velocities on both axes.

abstract View findSnapView(RecyclerView.LayoutManager layoutManager)

Override this method to provide a particular target view for snapping.

abstract int findTargetSnapPosition(RecyclerView.LayoutManager layoutManager, int velocityX, int velocityY)

Override to provide a particular adapter target position for snapping.

boolean onFling(int velocityX, int velocityY)

Override this to handle a fling given the velocities in both x and y directions.

Protected methods

RecyclerView.SmoothScroller createScroller(RecyclerView.LayoutManager layoutManager)

Creates a scroller to be used in the snapping implementation.

LinearSmoothScroller createSnapScroller(RecyclerView.LayoutManager layoutManager)

This method is deprecated. use createScroller(RecyclerView.LayoutManager) instead.

Inherited methods

Public constructors

SnapHelper

public SnapHelper ()

Public methods

attachToRecyclerView

public void attachToRecyclerView (RecyclerView recyclerView)

Attaches the SnapHelper to the provided RecyclerView, by calling RecyclerView.setOnFlingListener(RecyclerView.OnFlingListener). You can call this method with null to detach it from the current RecyclerView.

Parameters
recyclerView RecyclerView: The RecyclerView instance to which you want to add this helper or null if you want to remove SnapHelper from the current RecyclerView.

Throws
IllegalArgumentException if there is already a RecyclerView.OnFlingListener attached to the provided RecyclerView.
IllegalStateException

calculateDistanceToFinalSnap

public abstract 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