# CarouselSnapHelper

[View Source](https://github.com/material-components/material-components-android/blob/1.14.0/lib/java/com/google/android/material/carousel/CarouselSnapHelper.java)

*** ** * ** ***


```
public class CarouselSnapHelper
```

<br />

*** ** * ** ***

Implementation of the SnapHelper that supports snapping items to the carousel keylines according to the strategy.

## Summary

| ### Public constructors |
|---|
| `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#CarouselSnapHelper()()` |
| `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#CarouselSnapHelper(boolean)(boolean disableFling)` |

| ### Public methods |
|---|---|
| `void` | `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#attachToRecyclerView(RecyclerView)(RecyclerView recyclerView)` |
| `int[]` | `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#calculateDistanceToFinalSnap(LayoutManager,View)(LayoutManager layoutManager, View view)` |
| `View` | `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#findSnapView(LayoutManager)(LayoutManager layoutManager)` |
| `int` | `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#findTargetSnapPosition(LayoutManager,int,int)( LayoutManager layoutManager, int velocityX, int velocityY )` |

| ### Protected methods |
|---|---|
| `SmoothScroller` | `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#createScroller(LayoutManager)(LayoutManager layoutManager)` This is mostly a copy of `SnapHelper#createSnapScroller` with a slight adjustment to call `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#calculateDistanceToSnap(LayoutManager,View,boolean)` (LayoutManager, View)}. |

## Public constructors

### CarouselSnapHelper

```
public CarouselSnapHelper()
```

### CarouselSnapHelper

```
public CarouselSnapHelper(boolean disableFling)
```

## Public methods

### attachToRecyclerView

```
public void attachToRecyclerView(RecyclerView recyclerView)
```

### calculateDistanceToFinalSnap

```
public int[] calculateDistanceToFinalSnap(LayoutManager layoutManager, View view)
```

### findSnapView

```
public View findSnapView(LayoutManager layoutManager)
```

### findTargetSnapPosition

```
public int findTargetSnapPosition(
    LayoutManager layoutManager,
    int velocityX,
    int velocityY
)
```

## Protected methods

### createScroller

```
protected SmoothScroller createScroller(LayoutManager layoutManager)
```

This is mostly a copy of `SnapHelper#createSnapScroller` with a slight adjustment to call `https://developer.android.com/reference/com/google/android/material/carousel/CarouselSnapHelper#calculateDistanceToSnap(LayoutManager,View,boolean)` (LayoutManager, View)}. We want to do a partial snap since the correct target keyline state may not have updated yet since this gets called before the keylines shift.