LazyLayoutScrollScope

Interface

Common
interface LazyLayoutScrollScope : ScrollScope

A ScrollScope to allow customization of scroll sessions in LazyLayouts. This scope contains additional information to perform a custom scroll session in a scrollable LazyLayout.

For implementations for the most common layouts see:

Properties

Common
val firstVisibleItemIndex: Int

The index of the first visible item in the lazy layout.

Common
val firstVisibleItemScrollOffset: Int

The offset of the first visible item.

Common
val lastVisibleItemIndex: Int

The last visible item in the LazyLayout, lastVisibleItemIndex - firstVisibleItemOffset + 1 is the number of visible items.

Common
val itemCount: Int

The total item count.

Functions

fun snapToItem(index: Int, offset: Int = 0)

Immediately scroll to index and settle in offset.

Parameters

indexThe position index where we should immediately snap to.
offsetThe offset where we should immediately snap to.
fun calculateDistanceTo(targetIndex: Int, targetOffset: Int = 0): Int

The "expected" distance to targetIndex. This means the "expected" offset of targetIndex in the layout. In a LazyLayout, non-visible items don't have an actual offset, so this method should return an approximation of the scroll offset to targetIndex. If targetIndex is visible, then an "exact" offset should be provided.

Parameters

targetIndexThe index position with respect to which this calculation should be done.
targetOffsetThe offset with respect to which this calculation should be done.

Returns

The expected distance to scroll so targetIndex is the firstVisibleItemIndex with targetOffset as the firstVisibleItemScrollOffset.