It's happening now, watch the livestream.

NestedScrollingChildHelper

open class NestedScrollingChildHelper
kotlin.Any
   ↳ androidx.core.view.NestedScrollingChildHelper

Helper class for implementing nested scrolling child views compatible with Android platform versions earlier than Android 5.0 Lollipop (API 21).

View subclasses should instantiate a final instance of this class as a field at construction. For each View method that has a matching method signature in this class, delegate the operation to the helper instance in an overridden method implementation. This implements the standard framework policy for nested scrolling.

Views invoking nested scrolling functionality should always do so from the relevant androidx.core.view.ViewCompat, androidx.core.view.ViewGroupCompat or androidx.core.view.ViewParentCompat compatibility shim static methods. This ensures interoperability with nested scrolling views on Android 5.0 Lollipop and newer.

Summary

Public constructors

<init>(@NonNull view: View)

Construct a new helper for a given view.

Public methods

open Boolean
dispatchNestedFling(velocityX: Float, velocityY: Float, consumed: Boolean)

Dispatch a nested fling operation to the current nested scrolling parent.

open Boolean
dispatchNestedPreFling(velocityX: Float, velocityY: Float)

Dispatch a nested pre-fling operation to the current nested scrolling parent.

open Boolean
dispatchNestedPreScroll(dx: Int, dy: Int, @Nullable consumed: IntArray?, @Nullable offsetInWindow: IntArray?)

Dispatch one step of a nested pre-scrolling operation to the current nested scrolling parent.

open Boolean
dispatchNestedPreScroll(dx: Int, dy: Int, @Nullable consumed: IntArray?, @Nullable offsetInWindow: IntArray?, type: Int)

Dispatch one step of a nested pre-scrolling operation to the current nested scrolling parent.

open Boolean
dispatchNestedScroll(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, @Nullable offsetInWindow: IntArray?)

Dispatch one step of a nested scrolling operation to the current nested scrolling parent.

open Boolean
dispatchNestedScroll(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, @Nullable offsetInWindow: IntArray?, type: Int)

Dispatch one step of a nested scrolling operation to the current nested scrolling parent.

open Unit
dispatchNestedScroll(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, @Nullable offsetInWindow: IntArray?, type: Int, @Nullable consumed: IntArray?)

Dispatch one step of a nested scrolling operation to the current nested scrolling parent.

open Boolean

Check if this view has a nested scrolling parent view currently receiving events for a nested scroll in progress with the type of touch.

open Boolean

Check if this view has a nested scrolling parent view currently receiving events for a nested scroll in progress with the given type.

open Boolean

Check if nested scrolling is enabled for this view.

open Unit

View subclasses should always call this method on their NestedScrollingChildHelper when detached from a window.

open Unit
onStopNestedScroll(@NonNull child: View)

Called when a nested scrolling child stops its current nested scroll operation.

open Unit

Enable nested scrolling.

open Boolean

Start a new nested scroll for this view.

open Boolean
startNestedScroll(axes: Int, type: Int)

Start a new nested scroll for this view.

open Unit

Stop a nested scroll in progress.

open Unit

Stop a nested scroll in progress.

Public constructors

<init>

NestedScrollingChildHelper(@NonNull view: View)

Construct a new helper for a given view.

Public methods

dispatchNestedFling

open fun dispatchNestedFling(velocityX: Float, velocityY: Float, consumed: Boolean): Boolean

Dispatch a nested fling operation to the current nested scrolling parent.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if the parent consumed the nested fling

dispatchNestedPreFling

open fun dispatchNestedPreFling(velocityX: Float, velocityY: Float): Boolean

Dispatch a nested pre-fling operation to the current nested scrolling parent.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if the parent consumed the nested fling

dispatchNestedPreScroll

open fun dispatchNestedPreScroll(dx: Int, dy: Int, @Nullable consumed: IntArray?, @Nullable offsetInWindow: IntArray?): Boolean

Dispatch one step of a nested pre-scrolling operation to the current nested scrolling parent.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if the parent consumed any of the nested scroll

dispatchNestedPreScroll

open fun dispatchNestedPreScroll(dx: Int, dy: Int, @Nullable consumed: IntArray?, @Nullable offsetInWindow: IntArray?, type: Int): Boolean

Dispatch one step of a nested pre-scrolling operation to the current nested scrolling parent.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild2 interface method with the same signature to implement the standard policy.

Return
Boolean: true if the parent consumed any of the nested scroll

dispatchNestedScroll

open fun dispatchNestedScroll(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, @Nullable offsetInWindow: IntArray?): Boolean

Dispatch one step of a nested scrolling operation to the current nested scrolling parent.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if the parent consumed any of the nested scroll distance

dispatchNestedScroll

open fun dispatchNestedScroll(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, @Nullable offsetInWindow: IntArray?, type: Int): Boolean

Dispatch one step of a nested scrolling operation to the current nested scrolling parent.

This is a delegate method. Call it from your NestedScrollingChild2 interface method with the same signature to implement the standard policy.

Return
Boolean: true if the parent consumed any of the nested scroll distance

dispatchNestedScroll

open fun dispatchNestedScroll(dxConsumed: Int, dyConsumed: Int, dxUnconsumed: Int, dyUnconsumed: Int, @Nullable offsetInWindow: IntArray?, type: Int, @Nullable consumed: IntArray?): Unit

Dispatch one step of a nested scrolling operation to the current nested scrolling parent.

This is a delegate method. Call it from your NestedScrollingChild3 interface method with the same signature to implement the standard policy.

hasNestedScrollingParent

open fun hasNestedScrollingParent(): Boolean

Check if this view has a nested scrolling parent view currently receiving events for a nested scroll in progress with the type of touch.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if this view has a nested scrolling parent, false otherwise

hasNestedScrollingParent

open fun hasNestedScrollingParent(type: Int): Boolean

Check if this view has a nested scrolling parent view currently receiving events for a nested scroll in progress with the given type.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if this view has a nested scrolling parent, false otherwise

isNestedScrollingEnabled

open fun isNestedScrollingEnabled(): Boolean

Check if nested scrolling is enabled for this view.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Return
Boolean: true if nested scrolling is enabled for this view

onDetachedFromWindow

open fun onDetachedFromWindow(): Unit

View subclasses should always call this method on their NestedScrollingChildHelper when detached from a window.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

onStopNestedScroll

open fun onStopNestedScroll(@NonNull child: View): Unit

Called when a nested scrolling child stops its current nested scroll operation.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Parameters
child View: Child view stopping its nested scroll. This may not be a direct child view.

setNestedScrollingEnabled

open fun setNestedScrollingEnabled(enabled: Boolean): Unit

Enable nested scrolling.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Parameters
enabled Boolean: true to enable nested scrolling dispatch from this view, false otherwise

startNestedScroll

open fun startNestedScroll(axes: Int): Boolean

Start a new nested scroll for this view.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

Parameters
axes Int: Supported nested scroll axes. See androidx.core.view.NestedScrollingChild#startNestedScroll(int).
Return
Boolean: true if a cooperating parent view was found and nested scrolling started successfully

startNestedScroll

open fun startNestedScroll(axes: Int, type: Int): Boolean

Start a new nested scroll for this view.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild2 interface method with the same signature to implement the standard policy.

Parameters
axes Int: Supported nested scroll axes. See androidx.core.view.NestedScrollingChild2#startNestedScroll(int, * int).
Return
Boolean: true if a cooperating parent view was found and nested scrolling started successfully

stopNestedScroll

open fun stopNestedScroll(): Unit

Stop a nested scroll in progress.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild interface method with the same signature to implement the standard policy.

stopNestedScroll

open fun stopNestedScroll(type: Int): Unit

Stop a nested scroll in progress.

This is a delegate method. Call it from your View subclass method/androidx.core.view.NestedScrollingChild2 interface method with the same signature to implement the standard policy.