NestedScrollingChild3

Added in 1.1.0

public interface NestedScrollingChild3 extends NestedScrollingChild2

Known direct subclasses
NestedScrollView

NestedScrollView is just like ScrollView, but it supports acting as both a nested scrolling parent and child on both new and old versions of Android.

RecyclerView

A flexible view for providing a limited window into a large data set.

SwipeRefreshLayout

The SwipeRefreshLayout should be used whenever the user can refresh the contents of a view via a vertical swipe gesture.

Known indirect subclasses
BaseGridView

An abstract base class for vertically and horizontally scrolling lists.

HorizontalGridView

A android.view.ViewGroup that shows items in a horizontal scrolling list.

VerticalGridView

A android.view.ViewGroup that shows items in a vertically scrolling list.

WearableRecyclerView

Wearable specific implementation of the RecyclerView enabling setCircularScrollingGestureEnabled circular scrolling} and semi-circular layouts.


This interface should be implemented by View subclasses that wish to support dispatching nested scrolling operations to a cooperating parent ViewGroup.

Classes implementing this interface should create a final instance of a NestedScrollingChildHelper as a field and delegate any View methods to the NestedScrollingChildHelper methods of the same signature.

Views invoking nested scrolling functionality should always do so from the relevant ViewCompat, ViewGroupCompat or ViewParentCompat compatibility shim static methods. This ensures interoperability with nested scrolling views on all versions of Android.

Summary

Public methods

abstract void
dispatchNestedScroll(
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    @Nullable int[] offsetInWindow,
    int type,
    @NonNull int[] consumed
)

Dispatch one step of a nested scroll in progress.

Inherited methods

From androidx.core.view.NestedScrollingChild
abstract boolean
dispatchNestedFling(float velocityX, float velocityY, boolean consumed)

Dispatch a fling to a nested scrolling parent.

abstract boolean
dispatchNestedPreFling(float velocityX, float velocityY)

Dispatch a fling to a nested scrolling parent before it is processed by this view.

abstract boolean
dispatchNestedPreScroll(
    int dx,
    int dy,
    @Nullable int[] consumed,
    @Nullable int[] offsetInWindow
)

Dispatch one step of a nested scroll in progress before this view consumes any portion of it.

abstract boolean
dispatchNestedScroll(
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    @Nullable int[] offsetInWindow
)

Dispatch one step of a nested scroll in progress.

abstract boolean

Returns true if this view has a nested scrolling parent.

abstract boolean

Returns true if nested scrolling is enabled for this view.

abstract void
setNestedScrollingEnabled(boolean enabled)

Enable or disable nested scrolling for this view.

abstract boolean

Begin a nestable scroll operation along the given axes.

abstract void

Stop a nested scroll in progress.

From androidx.core.view.NestedScrollingChild2
abstract boolean
dispatchNestedPreScroll(
    int dx,
    int dy,
    @Nullable int[] consumed,
    @Nullable int[] offsetInWindow,
    int type
)

Dispatch one step of a nested scroll in progress before this view consumes any portion of it.

abstract boolean
dispatchNestedScroll(
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    @Nullable int[] offsetInWindow,
    int type
)

Dispatch one step of a nested scroll in progress.

abstract boolean

Returns true if this view has a nested scrolling parent for the given input type.

abstract boolean
startNestedScroll(int axes, int type)

Begin a nestable scroll operation along the given axes, for the given input type.

abstract void
stopNestedScroll(int type)

Stop a nested scroll in progress for the given input type.

Public methods

dispatchNestedScroll

Added in 1.1.0
abstract void dispatchNestedScroll(
    int dxConsumed,
    int dyConsumed,
    int dxUnconsumed,
    int dyUnconsumed,
    @Nullable int[] offsetInWindow,
    int type,
    @NonNull int[] consumed
)

Dispatch one step of a nested scroll in progress.

Implementations of views that support nested scrolling should call this to report info about a scroll in progress to the current nested scrolling parent. If a nested scroll is not currently in progress or nested scrolling is not enabled for this view this method does nothing.

Compatible View implementations should also call dispatchNestedPreScroll before consuming a component of the scroll event themselves.

The original nested scrolling child (where the input events were received to start the scroll) must provide a non-null consumed parameter with values {0, 0}.

Parameters
int dxConsumed

Horizontal distance in pixels consumed by this view during this scroll step

int dyConsumed

Vertical distance in pixels consumed by this view during this scroll step

int dxUnconsumed

Horizontal scroll distance in pixels not consumed by this view

int dyUnconsumed

Horizontal scroll distance in pixels not consumed by this view

@Nullable int[] offsetInWindow

Optional. If not null, on return this will contain the offset in local view coordinates of this view from before this operation to after it completes. View implementations may use this to adjust expected input coordinate tracking.

int type

the type of input which cause this scroll event

@NonNull int[] consumed

Output. Upon this method returning, will contain the original values plus any scroll distances consumed by all of this view's nested scrolling parents up the view hierarchy. Index 0 for the x dimension, and index 1 for the y dimension

See also
onNestedScroll