Save the date! Android Dev Summit is coming to Mountain View, CA on November 7-8, 2018.
added in version 1.0.0
belongs to Maven artifact androidx.core:core:1.0.0-rc01

NestedScrollView

public class NestedScrollView
extends FrameLayout implements NestedScrollingParent2, NestedScrollingChild2, ScrollingView

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.FrameLayout
         ↳ androidx.core.widget.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. Nested scrolling is enabled by default.

Summary

Nested classes

interface NestedScrollView.OnScrollChangeListener

Interface definition for a callback to be invoked when the scroll X or Y positions of a view change. 

Inherited constants

Inherited fields

Public constructors

NestedScrollView(Context context)
NestedScrollView(Context context, AttributeSet attrs)
NestedScrollView(Context context, AttributeSet attrs, int defStyleAttr)

Public methods

void addView(View child, int index)
void addView(View child, ViewGroup.LayoutParams params)
void addView(View child, int index, ViewGroup.LayoutParams params)
void addView(View child)
boolean arrowScroll(int direction)

Handle scrolling in response to an up or down arrow click.

void computeScroll()
boolean dispatchKeyEvent(KeyEvent event)
boolean dispatchNestedFling(float velocityX, float velocityY, boolean consumed)
boolean dispatchNestedPreFling(float velocityX, float velocityY)
boolean dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow)
boolean dispatchNestedPreScroll(int dx, int dy, int[] consumed, int[] offsetInWindow, int type)

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

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

Dispatch one step of a nested scroll in progress.

boolean dispatchNestedScroll(int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int[] offsetInWindow)
void draw(Canvas canvas)
boolean executeKeyEvent(KeyEvent event)

You can call this function yourself to have the scroll view perform scrolling from a key event, just as if the event had been dispatched to it by the view hierarchy.

void fling(int velocityY)

Fling the scroll view

boolean fullScroll(int direction)

Handles scrolling in response to a "home/end" shortcut press.

int getMaxScrollAmount()
int getNestedScrollAxes()
boolean hasNestedScrollingParent()
boolean hasNestedScrollingParent(int type)

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

boolean isFillViewport()

Indicates whether this ScrollView's content is stretched to fill the viewport.

boolean isNestedScrollingEnabled()
boolean isSmoothScrollingEnabled()
void onAttachedToWindow()
boolean onGenericMotionEvent(MotionEvent event)
boolean onInterceptTouchEvent(MotionEvent ev)
boolean onNestedFling(View target, float velocityX, float velocityY, boolean consumed)
boolean onNestedPreFling(View target, float velocityX, float velocityY)
void onNestedPreScroll(View target, int dx, int dy, int[] consumed)
void onNestedPreScroll(View target, int dx, int dy, int[] consumed, int type)

React to a nested scroll in progress before the target view consumes a portion of the scroll.

void onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed, int type)

React to a nested scroll in progress.

void onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed)
void onNestedScrollAccepted(View child, View target, int axes, int type)

React to the successful claiming of a nested scroll operation.

void onNestedScrollAccepted(View child, View target, int nestedScrollAxes)
boolean onStartNestedScroll(View child, View target, int axes, int type)

React to a descendant view initiating a nestable scroll operation, claiming the nested scroll operation if appropriate.

boolean onStartNestedScroll(View child, View target, int nestedScrollAxes)
void onStopNestedScroll(View target)
void onStopNestedScroll(View target, int type)

React to a nested scroll operation ending.

boolean onTouchEvent(MotionEvent ev)
boolean pageScroll(int direction)

Handles scrolling in response to a "page up/down" shortcut press.

void requestChildFocus(View child, View focused)
boolean requestChildRectangleOnScreen(View child, Rect rectangle, boolean immediate)
void requestDisallowInterceptTouchEvent(boolean disallowIntercept)
void requestLayout()
void scrollTo(int x, int y)

This version also clamps the scrolling to the bounds of our child.

void setFillViewport(boolean fillViewport)

Set whether this ScrollView should stretch its content height to fill the viewport or not.

void setNestedScrollingEnabled(boolean enabled)
void setOnScrollChangeListener(NestedScrollView.OnScrollChangeListener l)

Register a callback to be invoked when the scroll X or Y positions of this view change.

void setSmoothScrollingEnabled(boolean smoothScrollingEnabled)

Set whether arrow scrolling will animate its transition.

boolean shouldDelayChildPressedState()
final void smoothScrollBy(int dx, int dy)

Like View.scrollBy(int, int), but scroll smoothly instead of immediately.

final void smoothScrollTo(int x, int y)

Like scrollTo(int, int), but scroll smoothly instead of immediately.

boolean startNestedScroll(int axes, int type)

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

boolean startNestedScroll(int axes)
void stopNestedScroll(int type)

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

void stopNestedScroll()

Protected methods

int computeScrollDeltaToGetChildRectOnScreen(Rect rect)

Compute the amount to scroll in the Y direction in order to get a rectangle completely on the screen (or, if taller than the screen, at least the first screen size chunk of it).

float getBottomFadingEdgeStrength()
float getTopFadingEdgeStrength()
void measureChild(View child, int parentWidthMeasureSpec, int parentHeightMeasureSpec)
void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed)
void onLayout(boolean changed, int l, int t, int r, int b)
void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)
boolean onRequestFocusInDescendants(int direction, Rect previouslyFocusedRect)

When looking for focus in children of a scroll view, need to be a little more careful not to give focus to something that is scrolled off screen.

void onRestoreInstanceState(Parcelable state)
Parcelable onSaveInstanceState()
void onScrollChanged(int l, int t, int oldl, int oldt)
void onSizeChanged(int w, int h, int oldw, int oldh)

Inherited methods

Public constructors

NestedScrollView

added in version 1.0.0
public NestedScrollView (Context context)

Parameters
context Context

NestedScrollView

added in version 1.0.0
public NestedScrollView (Context context, 
                AttributeSet attrs)

Parameters
context Context

attrs AttributeSet

NestedScrollView

added in version 1.0.0
public NestedScrollView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context

attrs AttributeSet

defStyleAttr int

Public methods

addView

public void addView (View child, 
                int index)

Parameters
child View

index int

addView

public void addView (View child, 
                ViewGroup.LayoutParams params)

Parameters
child View

params ViewGroup.LayoutParams

addView

public void addView (View child, 
                int index, 
                ViewGroup.LayoutParams params)

Parameters
child View

index int

params ViewGroup.LayoutParams

addView

public void addView (View child)

Parameters
child View

arrowScroll

added in version 1.0.0
public boolean arrowScroll (int direction)

Handle scrolling in response to an up or down arrow click.

Parameters
direction int: The direction corresponding to the arrow key that was pressed

Returns
boolean True if we consumed the event, false otherwise

computeScroll

public void computeScroll ()

dispatchKeyEvent

public boolean dispatchKeyEvent (KeyEvent event)

Parameters
event KeyEvent

Returns
boolean

dispatchNestedFling

public boolean dispatchNestedFling (float velocityX, 
                float velocityY, 
                boolean consumed)

Parameters
velocityX float

velocityY float

consumed boolean

Returns
boolean

dispatchNestedPreFling

public boolean dispatchNestedPreFling (float velocityX, 
                float velocityY)

Parameters
velocityX float

velocityY float

Returns
boolean

dispatchNestedPreScroll

public boolean dispatchNestedPreScroll (int dx, 
                int dy, 
                int[] consumed, 
                int[] offsetInWindow)

Parameters
dx int

dy int

consumed int

offsetInWindow int

Returns
boolean

dispatchNestedPreScroll

added in version 1.0.0
public boolean dispatchNestedPreScroll (int dx, 
                int dy, 
                int[] consumed, 
                int[] offsetInWindow, 
                int type)

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

Nested pre-scroll events are to nested scroll events what touch intercept is to touch. dispatchNestedPreScroll offers an opportunity for the parent view in a nested scrolling operation to consume some or all of the scroll operation before the child view consumes it.

Parameters
dx int: Horizontal scroll distance in pixels

dy int: Vertical scroll distance in pixels

consumed int: Output. If not null, consumed[0] will contain the consumed component of dx and consumed[1] the consumed dy.

offsetInWindow int: 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.

type int: the type of input which cause this scroll event

Returns
boolean true if the parent consumed some or all of the scroll delta

dispatchNestedScroll

added in version 1.0.0
public boolean dispatchNestedScroll (int dxConsumed, 
                int dyConsumed, 
                int dxUnconsumed, 
                int dyUnconsumed, 
                int[] offsetInWindow, 
                int type)

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.

Parameters
dxConsumed int: Horizontal distance in pixels consumed by this view during this scroll step

dyConsumed int: Vertical distance in pixels consumed by this view during this scroll step

dxUnconsumed int: Horizontal scroll distance in pixels not consumed by this view

dyUnconsumed int: Horizontal scroll distance in pixels not consumed by this view

offsetInWindow int: 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.

type int: the type of input which cause this scroll event

Returns
boolean true if the event was dispatched, false if it could not be dispatched.

dispatchNestedScroll

public boolean dispatchNestedScroll (int dxConsumed, 
                int dyConsumed, 
                int dxUnconsumed, 
                int dyUnconsumed, 
                int[] offsetInWindow)

Parameters
dxConsumed int

dyConsumed int

dxUnconsumed int

dyUnconsumed int

offsetInWindow int

Returns
boolean

draw

public void draw (Canvas canvas)

Parameters
canvas Canvas

executeKeyEvent

added in version 1.0.0
public boolean executeKeyEvent (KeyEvent event)

You can call this function yourself to have the scroll view perform scrolling from a key event, just as if the event had been dispatched to it by the view hierarchy.

Parameters
event KeyEvent: The key event to execute.

Returns
boolean Return true if the event was handled, else false.

fling

added in version 1.0.0
public void fling (int velocityY)

Fling the scroll view

Parameters
velocityY int: The initial velocity in the Y direction. Positive numbers mean that the finger/cursor is moving down the screen, which means we want to scroll towards the top.

fullScroll

added in version 1.0.0
public boolean fullScroll (int direction)

Handles scrolling in response to a "home/end" shortcut press. This method will scroll the view to the top or bottom and give the focus to the topmost/bottommost component in the new visible area. If no component is a good candidate for focus, this scrollview reclaims the focus.

Parameters
direction int: the scroll direction: View.FOCUS_UP to go the top of the view or View.FOCUS_DOWN to go the bottom

Returns
boolean true if the key event is consumed by this method, false otherwise

getMaxScrollAmount

added in version 1.0.0
public int getMaxScrollAmount ()

Returns
int The maximum amount this scroll view will scroll in response to an arrow event.

getNestedScrollAxes

public int getNestedScrollAxes ()

Returns
int

hasNestedScrollingParent

public boolean hasNestedScrollingParent ()

Returns
boolean

hasNestedScrollingParent

added in version 1.0.0
public boolean hasNestedScrollingParent (int type)

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

The presence of a nested scrolling parent indicates that this view has initiated a nested scroll and it was accepted by an ancestor view further up the view hierarchy.

Parameters
type int: the type of input which cause this scroll event

Returns
boolean whether this view has a nested scrolling parent

isFillViewport

added in version 1.0.0
public boolean isFillViewport ()

Indicates whether this ScrollView's content is stretched to fill the viewport.

Returns
boolean True if the content fills the viewport, false otherwise.

isNestedScrollingEnabled

public boolean isNestedScrollingEnabled ()

Returns
boolean

isSmoothScrollingEnabled

added in version 1.0.0
public boolean isSmoothScrollingEnabled ()

Returns
boolean Whether arrow scrolling will animate its transition.

onAttachedToWindow

added in version 1.0.0
public void onAttachedToWindow ()

onGenericMotionEvent

public boolean onGenericMotionEvent (MotionEvent event)

Parameters
event MotionEvent

Returns
boolean

onInterceptTouchEvent

public boolean onInterceptTouchEvent (MotionEvent ev)

Parameters
ev MotionEvent

Returns
boolean

onNestedFling

public boolean onNestedFling (View target, 
                float velocityX, 
                float velocityY, 
                boolean consumed)

Parameters
target View

velocityX float

velocityY float

consumed boolean

Returns
boolean

onNestedPreFling

public boolean onNestedPreFling (View target, 
                float velocityX, 
                float velocityY)

Parameters
target View

velocityX float

velocityY float

Returns
boolean

onNestedPreScroll

public void onNestedPreScroll (View target, 
                int dx, 
                int dy, 
                int[] consumed)

Parameters
target View

dx int

dy int

consumed int

onNestedPreScroll

added in version 1.0.0
public void onNestedPreScroll (View target, 
                int dx, 
                int dy, 
                int[] consumed, 
                int type)

React to a nested scroll in progress before the target view consumes a portion of the scroll.

When working with nested scrolling often the parent view may want an opportunity to consume the scroll before the nested scrolling child does. An example of this is a drawer that contains a scrollable list. The user will want to be able to scroll the list fully into view before the list itself begins scrolling.

onNestedPreScroll is called when a nested scrolling child invokes View.dispatchNestedPreScroll(int, int, int[], int[]). The implementation should report how any pixels of the scroll reported by dx, dy were consumed in the consumed array. Index 0 corresponds to dx and index 1 corresponds to dy. This parameter will never be null. Initial values for consumed[0] and consumed[1] will always be 0.

Parameters
target View: View that initiated the nested scroll

dx int: Horizontal scroll distance in pixels

dy int: Vertical scroll distance in pixels

consumed int: Output. The horizontal and vertical scroll distance consumed by this parent

type int: the type of input which cause this scroll event

onNestedScroll

added in version 1.0.0
public void onNestedScroll (View target, 
                int dxConsumed, 
                int dyConsumed, 
                int dxUnconsumed, 
                int dyUnconsumed, 
                int type)

React to a nested scroll in progress.

This method will be called when the ViewParent's current nested scrolling child view dispatches a nested scroll event. To receive calls to this method the ViewParent must have previously returned true for a call to onStartNestedScroll(View, View, int, int).

Both the consumed and unconsumed portions of the scroll distance are reported to the ViewParent. An implementation may choose to use the consumed portion to match or chase scroll position of multiple child elements, for example. The unconsumed portion may be used to allow continuous dragging of multiple scrolling or draggable elements, such as scrolling a list within a vertical drawer where the drawer begins dragging once the edge of inner scrolling content is reached.

Parameters
target View: The descendent view controlling the nested scroll

dxConsumed int: Horizontal scroll distance in pixels already consumed by target

dyConsumed int: Vertical scroll distance in pixels already consumed by target

dxUnconsumed int: Horizontal scroll distance in pixels not consumed by target

dyUnconsumed int: Vertical scroll distance in pixels not consumed by target

type int: the type of input which cause this scroll event

onNestedScroll

public void onNestedScroll (View target, 
                int dxConsumed, 
                int dyConsumed, 
                int dxUnconsumed, 
                int dyUnconsumed)

Parameters
target View

dxConsumed int

dyConsumed int

dxUnconsumed int

dyUnconsumed int

onNestedScrollAccepted

added in version 1.0.0
public void onNestedScrollAccepted (View child, 
                View target, 
                int axes, 
                int type)

React to the successful claiming of a nested scroll operation.

This method will be called after onStartNestedScroll returns true. It offers an opportunity for the view and its superclasses to perform initial configuration for the nested scroll. Implementations of this method should always call their superclass's implementation of this method if one is present.

Parameters
child View: Direct child of this ViewParent containing target

target View: View that initiated the nested scroll

axes int: Flags consisting of ViewCompat.SCROLL_AXIS_HORIZONTAL, ViewCompat.SCROLL_AXIS_VERTICAL or both

type int: the type of input which cause this scroll event

onNestedScrollAccepted

public void onNestedScrollAccepted (View child, 
                View target, 
                int nestedScrollAxes)

Parameters
child View

target View

nestedScrollAxes int

onStartNestedScroll

added in version 1.0.0
public boolean onStartNestedScroll (View child, 
                View target, 
                int axes, 
                int type)

React to a descendant view initiating a nestable scroll operation, claiming the nested scroll operation if appropriate.

This method will be called in response to a descendant view invoking ViewCompat.startNestedScroll(View, int). Each parent up the view hierarchy will be given an opportunity to respond and claim the nested scrolling operation by returning true.

This method may be overridden by ViewParent implementations to indicate when the view is willing to support a nested scrolling operation that is about to begin. If it returns true, this ViewParent will become the target view's nested scrolling parent for the duration of the scroll operation in progress. When the nested scroll is finished this ViewParent will receive a call to onStopNestedScroll(View, int).

Parameters
child View: Direct child of this ViewParent containing target

target View: View that initiated the nested scroll

axes int: Flags consisting of ViewCompat.SCROLL_AXIS_HORIZONTAL, ViewCompat.SCROLL_AXIS_VERTICAL or both

type int: the type of input which cause this scroll event

Returns
boolean true if this ViewParent accepts the nested scroll operation

onStartNestedScroll

public boolean onStartNestedScroll (View child, 
                View target, 
                int nestedScrollAxes)

Parameters
child View

target View

nestedScrollAxes int

Returns
boolean

onStopNestedScroll

public void onStopNestedScroll (View target)

Parameters
target View

onStopNestedScroll

added in version 1.0.0
public void onStopNestedScroll (View target, 
                int type)

React to a nested scroll operation ending.

Perform cleanup after a nested scrolling operation. This method will be called when a nested scroll stops, for example when a nested touch scroll ends with a MotionEvent.ACTION_UP or MotionEvent.ACTION_CANCEL event. Implementations of this method should always call their superclass's implementation of this method if one is present.

Parameters
target View: View that initiated the nested scroll

type int: the type of input which cause this scroll event

onTouchEvent

public boolean onTouchEvent (MotionEvent ev)

Parameters
ev MotionEvent

Returns
boolean

pageScroll

added in version 1.0.0
public boolean pageScroll (int direction)

Handles scrolling in response to a "page up/down" shortcut press. This method will scroll the view by one page up or down and give the focus to the topmost/bottommost component in the new visible area. If no component is a good candidate for focus, this scrollview reclaims the focus.

Parameters
direction int: the scroll direction: View.FOCUS_UP to go one page up or View.FOCUS_DOWN to go one page down

Returns
boolean true if the key event is consumed by this method, false otherwise

requestChildFocus

public void requestChildFocus (View child, 
                View focused)

Parameters
child View

focused View

requestChildRectangleOnScreen

public boolean requestChildRectangleOnScreen (View child, 
                Rect rectangle, 
                boolean immediate)

Parameters
child View

rectangle Rect

immediate boolean

Returns
boolean

requestDisallowInterceptTouchEvent

public void requestDisallowInterceptTouchEvent (boolean disallowIntercept)

Parameters
disallowIntercept boolean

requestLayout

public void requestLayout ()

scrollTo

public void scrollTo (int x, 
                int y)

This version also clamps the scrolling to the bounds of our child.

Parameters
x int

y int

setFillViewport

added in version 1.0.0
public void setFillViewport (boolean fillViewport)

Set whether this ScrollView should stretch its content height to fill the viewport or not.

Parameters
fillViewport boolean: True to stretch the content's height to the viewport's boundaries, false otherwise.

setNestedScrollingEnabled

public void setNestedScrollingEnabled (boolean enabled)

Parameters
enabled boolean

setOnScrollChangeListener

added in version 1.0.0
public void setOnScrollChangeListener (NestedScrollView.OnScrollChangeListener l)

Register a callback to be invoked when the scroll X or Y positions of this view change.

This version of the method works on all versions of Android, back to API v4.

Parameters
l NestedScrollView.OnScrollChangeListener: The listener to notify when the scroll X or Y position changes.

setSmoothScrollingEnabled

added in version 1.0.0
public void setSmoothScrollingEnabled (boolean smoothScrollingEnabled)

Set whether arrow scrolling will animate its transition.

Parameters
smoothScrollingEnabled boolean: whether arrow scrolling will animate its transition

shouldDelayChildPressedState

public boolean shouldDelayChildPressedState ()

Returns
boolean

smoothScrollBy

added in version 1.0.0
public final void smoothScrollBy (int dx, 
                int dy)

Like View.scrollBy(int, int), but scroll smoothly instead of immediately.

Parameters
dx int: the number of pixels to scroll by on the X axis

dy int: the number of pixels to scroll by on the Y axis

smoothScrollTo

added in version 1.0.0
public final void smoothScrollTo (int x, 
                int y)

Like scrollTo(int, int), but scroll smoothly instead of immediately.

Parameters
x int: the position where to scroll on the X axis

y int: the position where to scroll on the Y axis

startNestedScroll

added in version 1.0.0
public boolean startNestedScroll (int axes, 
                int type)

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

A view starting a nested scroll promises to abide by the following contract:

The view will call startNestedScroll upon initiating a scroll operation. In the case of a touch scroll type this corresponds to the initial MotionEvent.ACTION_DOWN. In the case of touch scrolling the nested scroll will be terminated automatically in the same manner as ViewParent.requestDisallowInterceptTouchEvent(boolean). In the event of programmatic scrolling the caller must explicitly call stopNestedScroll(int) to indicate the end of the nested scroll.

If startNestedScroll returns true, a cooperative parent was found. If it returns false the caller may ignore the rest of this contract until the next scroll. Calling startNestedScroll while a nested scroll is already in progress will return true.

At each incremental step of the scroll the caller should invoke dispatchNestedPreScroll once it has calculated the requested scrolling delta. If it returns true the nested scrolling parent at least partially consumed the scroll and the caller should adjust the amount it scrolls by.

After applying the remainder of the scroll delta the caller should invoke dispatchNestedScroll, passing both the delta consumed and the delta unconsumed. A nested scrolling parent may treat these values differently. See NestedScrollingParent2.onNestedScroll(View, int, int, int, int, int).

Parameters
axes int: Flags consisting of a combination of ViewCompat.SCROLL_AXIS_HORIZONTAL and/or ViewCompat.SCROLL_AXIS_VERTICAL.

type int: the type of input which cause this scroll event

Returns
boolean true if a cooperative parent was found and nested scrolling has been enabled for the current gesture.

startNestedScroll

public boolean startNestedScroll (int axes)

Parameters
axes int

Returns
boolean

stopNestedScroll

added in version 1.0.0
public void stopNestedScroll (int type)

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

Calling this method when a nested scroll is not currently in progress is harmless.

Parameters
type int: the type of input which cause this scroll event

stopNestedScroll

public void stopNestedScroll ()

Protected methods

computeScrollDeltaToGetChildRectOnScreen

added in version 1.0.0
protected int computeScrollDeltaToGetChildRectOnScreen (Rect rect)

Compute the amount to scroll in the Y direction in order to get a rectangle completely on the screen (or, if taller than the screen, at least the first screen size chunk of it).

Parameters
rect Rect: The rect.

Returns
int The scroll delta.

getBottomFadingEdgeStrength

protected float getBottomFadingEdgeStrength ()

Returns
float

getTopFadingEdgeStrength

protected float getTopFadingEdgeStrength ()

Returns
float

measureChild

protected void measureChild (View child, 
                int parentWidthMeasureSpec, 
                int parentHeightMeasureSpec)

Parameters
child View

parentWidthMeasureSpec int

parentHeightMeasureSpec int

measureChildWithMargins

protected void measureChildWithMargins (View child, 
                int parentWidthMeasureSpec, 
                int widthUsed, 
                int parentHeightMeasureSpec, 
                int heightUsed)

Parameters
child View

parentWidthMeasureSpec int

widthUsed int

parentHeightMeasureSpec int

heightUsed int

onLayout

protected void onLayout (boolean changed, 
                int l, 
                int t, 
                int r, 
                int b)

Parameters
changed boolean

l int

t int

r int

b int

onMeasure

protected void onMeasure (int widthMeasureSpec, 
                int heightMeasureSpec)

Parameters
widthMeasureSpec int

heightMeasureSpec int

onOverScrolled

protected void onOverScrolled (int scrollX, 
                int scrollY, 
                boolean clampedX, 
                boolean clampedY)

Parameters
scrollX int

scrollY int

clampedX boolean

clampedY boolean

onRequestFocusInDescendants

protected boolean onRequestFocusInDescendants (int direction, 
                Rect previouslyFocusedRect)

When looking for focus in children of a scroll view, need to be a little more careful not to give focus to something that is scrolled off screen. This is more expensive than the default ViewGroup implementation, otherwise this behavior might have been made the default.

Parameters
direction int

previouslyFocusedRect Rect

Returns
boolean

onRestoreInstanceState

protected void onRestoreInstanceState (Parcelable state)

Parameters
state Parcelable

onSaveInstanceState

protected Parcelable onSaveInstanceState ()

Returns
Parcelable

onScrollChanged

protected void onScrollChanged (int l, 
                int t, 
                int oldl, 
                int oldt)

Parameters
l int

t int

oldl int

oldt int

onSizeChanged

protected void onSizeChanged (int w, 
                int h, 
                int oldw, 
                int oldh)

Parameters
w int

h int

oldw int

oldh int