Most visited

Recently visited

CoordinatorLayout.Behavior

public static abstract class CoordinatorLayout.Behavior
extends Object

java.lang.Object
   ↳ android.support.design.widget.CoordinatorLayout.Behavior<V extends android.view.View>
Known Direct Subclasses


交互行为插件为 CoordinatorLayout子视图。

行为实现用户可以在子视图上进行的一个或多个交互。 这些交互可能包括拖动,滑动,闪动或任何其他手势。

Summary

Public constructors

CoordinatorLayout.Behavior()

用于实例化Behaviors的默认构造函数。

CoordinatorLayout.Behavior(Context context, AttributeSet attrs)

默认构造函数用于从布局中扩充行为。

Public methods

boolean blocksInteractionBelow(CoordinatorLayout parent, V child)

确定是否应阻止与子女订单中给定子女背后的意见交流。

int getScrimColor(CoordinatorLayout parent, V child)

提供将在关联的子视图后面绘制的稀松平纹颜色。

float getScrimOpacity(CoordinatorLayout parent, V child)

确定给定子视图背后的稀松织物的当前不透明度

可以使用网格来指示其下面的其他元素当前不具有交互性或可操作性,从而吸引用户关注并关注网格上方的视图。

static Object getTag(View child)

使用给定的子视图获取行为特定的标记对象。

boolean isDirty(CoordinatorLayout parent, V child)

确定给定的子视图是否应该被认为是脏的。

boolean layoutDependsOn(CoordinatorLayout parent, V child, View dependency)

确定提供的子视图是否具有另一个特定的兄弟视图作为布局依赖关系。

WindowInsetsCompat onApplyWindowInsets(CoordinatorLayout coordinatorLayout, V child, WindowInsetsCompat insets)

当窗口插件已更改时调用。

boolean onDependentViewChanged(CoordinatorLayout parent, V child, View dependency)

回应孩子的独立观点的变化

只要依赖视图在标准布局流程之外的大小或位置发生变化,就会调用此方法。

void onDependentViewRemoved(CoordinatorLayout parent, V child, View dependency)

回应孩子的独立观点被删除。

boolean onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent ev)

在分派给子视图之前,响应CoordinatorLayout触摸事件。

boolean onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection)

当父母CoordinatorLayout关于布置给定子视图时调用。

boolean onMeasureChild(CoordinatorLayout parent, V child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed)

父母CoordinatorLayout即将测量给定子视图时调用。

boolean onNestedFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY, boolean consumed)

当嵌套滚动的小孩正在开始一个投射或一个将是一个投掷的动作时调用。

boolean onNestedPreFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY)

当嵌套滚动的孩子即将开始投掷时调用。

void onNestedPreScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy, int[] consumed)

在目标已消耗任何滚动距离之前,正在进行嵌套滚动更新时调用。

void onNestedScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed)

当正在进行嵌套滚动更新并且目标已滚动或尝试滚动时调用。

void onNestedScrollAccepted(CoordinatorLayout coordinatorLayout, V child, View directTargetChild, View target, int nestedScrollAxes)

当嵌套滚动已被CoordinatorLayout接受时调用。

void onRestoreInstanceState(CoordinatorLayout parent, V child, Parcelable state)

挂钩允许行为重新应用其以前由 onSaveInstanceState(CoordinatorLayout, V)生成的内部状态的表示。

Parcelable onSaveInstanceState(CoordinatorLayout parent, V child)

Hook允许一个行为生成一个内部状态的表示,以后可以用它来创建一个具有相同状态的新实例。

boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, V child, View directTargetChild, View target, int nestedScrollAxes)

当CoordinatorLayout的后代尝试启动嵌套滚动时调用。

void onStopNestedScroll(CoordinatorLayout coordinatorLayout, V child, View target)

当嵌套滚动结束时调用。

boolean onTouchEvent(CoordinatorLayout parent, V child, MotionEvent ev)

在行为开始 intercepting之后,回应CoordinatorLayout触摸事件。

static void setTag(View child, Object tag)

将行为特定的标签对象与给定的子视图相关联。

Inherited methods

From class java.lang.Object

Public constructors

CoordinatorLayout.Behavior

CoordinatorLayout.Behavior ()

用于实例化Behaviors的默认构造函数。

CoordinatorLayout.Behavior

CoordinatorLayout.Behavior (Context context, 
                AttributeSet attrs)

默认构造函数用于从布局中扩充行为。 行为将有机会解析特别定义的布局参数。 这些参数将出现在子视图标签上。

Public methods

blocksInteractionBelow

boolean blocksInteractionBelow (CoordinatorLayout parent, 
                V child)

确定是否应阻止与子女订单中给定子女背后的意见交流。

如果 getScrimOpacity(CoordinatorLayout, android.view.View)返回> 0.0f,则默认实现返回true。

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view to test
Returns
boolean true if getScrimOpacity(CoordinatorLayout, android.view.View) would return > 0.0f.

getScrimColor

int getScrimColor (CoordinatorLayout parent, 
                V child)

提供将在关联的子视图后面绘制的稀松平纹颜色。

可以使用网格来指示其下面的其他元素当前不具有交互性或可操作性,从而吸引用户关注并关注网格上方的视图。

默认实现返回 BLACK

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view above the scrim
Returns
int the desired scrim color in 0xAARRGGBB format. The default return value is BLACK.

也可以看看:

getScrimOpacity

float getScrimOpacity (CoordinatorLayout parent, 
                V child)

确定给定子视图背后的稀松织物的当前不透明度

可以使用网格来指示其下面的其他元素当前不具有交互性或可操作性,从而吸引用户关注并关注网格上方的视图。

默认实现返回0.0f。

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view above the scrim
Returns
float the desired scrim opacity from 0.0f to 1.0f. The default return value is 0.0f.

getTag

Object getTag (View child)

使用给定的子视图获取行为特定的标记对象。 该对象与子视图的LayoutParams一起存储。

Parameters
child View: child view to get tag with
Returns
Object the previously stored tag object

isDirty

boolean isDirty (CoordinatorLayout parent, 
                V child)

确定给定的子视图是否应该被认为是脏的。

如果行为确定的属性(如其他依赖视图)会发生更改,则行为应将子视图报告为脏。 这将提示CoordinatorLayout根据需要重新查询行为确定的属性。

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view to check
Returns
boolean true if child is dirty

layoutDependsOn

boolean layoutDependsOn (CoordinatorLayout parent, 
                V child, 
                View dependency)

确定提供的子视图是否具有另一个特定的兄弟视图作为布局依赖关系。

这个方法将被调用至少一次以响应布局请求。 如果它对给定的子对象和依赖性视图对返回true,那么父级CoordinatorLayout将:

  1. Always lay out this child after the dependent child is laid out, regardless of child order.
  2. Call onDependentViewChanged(CoordinatorLayout, V, View) when the dependency view's layout or position changes.

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view to test
dependency View: the proposed dependency of child
Returns
boolean true if child's layout depends on the proposed dependency's layout, false otherwise

也可以看看:

onApplyWindowInsets

WindowInsetsCompat onApplyWindowInsets (CoordinatorLayout coordinatorLayout, 
                V child, 
                WindowInsetsCompat insets)

当窗口插件已更改时调用。

与CoordinatorLayout的直接子代相关的任何行为都可以选择代表其相关视图处理窗口插入更改。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
insets WindowInsetsCompat: the new window insets.
Returns
WindowInsetsCompat The insets supplied, minus any insets that were consumed

onDependentViewChanged

boolean onDependentViewChanged (CoordinatorLayout parent, 
                V child, 
                View dependency)

回应孩子的独立观点的变化

只要依赖视图在标准布局流程之外的大小或位置发生变化,就会调用此方法。 行为可以使用此方法来适当地更新子视图作为响应。

视图的依赖性由 layoutDependsOn(CoordinatorLayout, android.view.View, android.view.View)确定,或者如果 child已将另一个视图设置为锚定,则视图的依赖关系由 layoutDependsOn(CoordinatorLayout, android.view.View, android.view.View)确定。

请注意,如果行为通过此方法更改了孩子的布局,它也应该能够重建onLayoutChild的正确位置。 onDependentViewChanged在正常布局期间不会被调用,因为每个子视图的布局总是以依赖性顺序发生。

如果行为更改了子视图的大小或位置,则它应该返回true。 默认实现返回false。

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view to manipulate
dependency View: the dependent view that changed
Returns
boolean true if the Behavior changed the child view's size or position, false otherwise

onDependentViewRemoved

void onDependentViewRemoved (CoordinatorLayout parent, 
                V child, 
                View dependency)

回应孩子的独立观点被删除。

在从父视图中删除相关视图后调用此方法。 行为可以使用此方法来适当地更新子视图作为响应。

视图的依赖性由 layoutDependsOn(CoordinatorLayout, android.view.View, android.view.View)确定,或者如果 child已将其他视图设置为锚点,

Parameters
parent CoordinatorLayout: the parent view of the given child
child V: the child view to manipulate
dependency View: the dependent view that has been removed

onInterceptTouchEvent

boolean onInterceptTouchEvent (CoordinatorLayout parent, 
                V child, 
                MotionEvent ev)

在分派给子视图之前,响应CoordinatorLayout触摸事件。

行为可以使用它来监控入站触摸事件,直到决定拦截事件流的其余部分以对其关联的子视图执行操作为止。 此方法将返回false直到它检测到正确的拦截条件,然后在发生这些条件后返回true。

一旦行为截获触摸事件,事件流的其余部分将被发送到 onTouchEvent(CoordinatorLayout, V, MotionEvent)方法。

此方法的默认实现始终返回false。

Parameters
parent CoordinatorLayout: the parent view currently receiving this touch event
child V: the child view associated with this Behavior
ev MotionEvent: the MotionEvent describing the touch event being processed
Returns
boolean true if this Behavior would like to intercept and take over the event stream. The default always returns false.

onLayoutChild

boolean onLayoutChild (CoordinatorLayout parent, 
                V child, 
                int layoutDirection)

当父母CoordinatorLayout关于布置给定子视图时调用。

此方法可用于执行子视图的自定义或修改布局,以取代默认子布局行为。 行为的实现可以通过调用parent.onLayoutChild委托给标准CoordinatorLayout测量行为。

如果行为实现onDependentViewChanged(CoordinatorLayout, android.view.View, android.view.View)以响应相关视图更改而更改视图的位置,则还应该以尊重这些相关视图的方式实现onLayoutChild onLayoutChild依赖关系后,将始终调用onLayoutChild依赖视图。

Parameters
parent CoordinatorLayout: the parent CoordinatorLayout
child V: child view to lay out
layoutDirection int: the resolved layout direction for the CoordinatorLayout, such as LAYOUT_DIRECTION_LTR or LAYOUT_DIRECTION_RTL.
Returns
boolean true if the Behavior performed layout of the child view, false to request default layout behavior

onMeasureChild

boolean onMeasureChild (CoordinatorLayout parent, 
                V child, 
                int parentWidthMeasureSpec, 
                int widthUsed, 
                int parentHeightMeasureSpec, 
                int heightUsed)

父母CoordinatorLayout即将测量给定子视图时调用。

此方法可用于执行自定义或修改的子视图测量,以代替默认的子测量行为。 行为的实现可以通过调用parent.onMeasureChild委托给标准CoordinatorLayout测量行为。

Parameters
parent CoordinatorLayout: the parent CoordinatorLayout
child V: the child to measure
parentWidthMeasureSpec int: the width requirements for this view
widthUsed int: extra space that has been used up by the parent horizontally (possibly by other children of the parent)
parentHeightMeasureSpec int: the height requirements for this view
heightUsed int: extra space that has been used up by the parent vertically (possibly by other children of the parent)
Returns
boolean true if the Behavior measured the child view, false if the CoordinatorLayout should perform its default measurement

onNestedFling

boolean onNestedFling (CoordinatorLayout coordinatorLayout, 
                V child, 
                View target, 
                float velocityX, 
                float velocityY, 
                boolean consumed)

当嵌套滚动的小孩正在开始一个投射或一个将是一个投掷的动作时调用。

任何与CoordinatorLayout的直接子项关联的行为都可以选择接受嵌套滚动,作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。

onNestedFling在当前嵌套滚动子视图检测到适合条件的正确条件时调用。 它报告孩子本身是否消费了这一招。 如果没有,该小孩预计会出现某种过度滚动的指示。 如果这个方法消耗了这个方块,那么这个方法应该返回true,这样一个自己没有采取行动的孩子可以选择不显示超出指示。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
target View: the descendant view of the CoordinatorLayout performing the nested scroll
velocityX float: horizontal velocity of the attempted fling
velocityY float: vertical velocity of the attempted fling
consumed boolean: true if the nested child view consumed the fling
Returns
boolean true if the Behavior consumed the fling

也可以看看:

onNestedPreFling

boolean onNestedPreFling (CoordinatorLayout coordinatorLayout, 
                V child, 
                View target, 
                float velocityX, 
                float velocityY)

当嵌套滚动的孩子即将开始投掷时调用。

任何与CoordinatorLayout的直接子项关联的行为都可以选择接受嵌套滚动,作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。

onNestedPreFling在当前嵌套滚动子视图检测到适合条件的适当条件时调用,但它尚未对其执行操作。 一个行为可以返回true来表明它消耗了一堆。 如果至少有一个行为返回true,则不应该让孩子执行这个行为。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
target View: the descendant view of the CoordinatorLayout performing the nested scroll
velocityX float: horizontal velocity of the attempted fling
velocityY float: vertical velocity of the attempted fling
Returns
boolean true if the Behavior consumed the fling

也可以看看:

onNestedPreScroll

void onNestedPreScroll (CoordinatorLayout coordinatorLayout, 
                V child, 
                View target, 
                int dx, 
                int dy, 
                int[] consumed)

在目标已消耗任何滚动距离之前,正在进行嵌套滚动更新时调用。

任何与CoordinatorLayout的直接子项关联的行为都可能选择接受嵌套滚动,作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。

onNestedPreScroll嵌套滚动更新时,嵌套滚动子onNestedPreScroll消耗滚动距离之前调用onNestedPreScroll 每个响应嵌套滚动的行为都会收到相同的值。 CoordinatorLayout将报告消耗的任何方向上的最大像素数,即任何响应嵌套滚动的行为都被报告为已消耗。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
target View: the descendant view of the CoordinatorLayout performing the nested scroll
dx int: the raw horizontal number of pixels that the user attempted to scroll
dy int: the raw vertical number of pixels that the user attempted to scroll
consumed int: out parameter. consumed[0] should be set to the distance of dx that was consumed, consumed[1] should be set to the distance of dy that was consumed

也可以看看:

onNestedScroll

void onNestedScroll (CoordinatorLayout coordinatorLayout, 
                V child, 
                View target, 
                int dxConsumed, 
                int dyConsumed, 
                int dxUnconsumed, 
                int dyUnconsumed)

当正在进行嵌套滚动更新并且目标已滚动或尝试滚动时调用。

任何与CoordinatorLayout的直接子项关联的行为都可以选择接受嵌套滚动,作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。

onNestedScroll嵌套滚动更新时,调用onNestedScroll滚动消耗和未消耗的滚动组件都以像素为单位提供。 每个响应嵌套滚动的行为都会收到相同的值。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
target View: the descendant view of the CoordinatorLayout performing the nested scroll
dxConsumed int: horizontal pixels consumed by the target's own scrolling operation
dyConsumed int: vertical pixels consumed by the target's own scrolling operation
dxUnconsumed int: horizontal pixels not consumed by the target's own scrolling operation, but requested by the user
dyUnconsumed int: vertical pixels not consumed by the target's own scrolling operation, but requested by the user

也可以看看:

onNestedScrollAccepted

void onNestedScrollAccepted (CoordinatorLayout coordinatorLayout, 
                V child, 
                View directTargetChild, 
                View target, 
                int nestedScrollAxes)

当嵌套滚动已被CoordinatorLayout接受时调用。

与CoordinatorLayout的任何直接子项关联的任何行为都可以选择接受嵌套滚动作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
directTargetChild View: the child view of the CoordinatorLayout that either is or contains the target of the nested scroll operation
target View: the descendant view of the CoordinatorLayout initiating the nested scroll
nestedScrollAxes int: the axes that this nested scroll applies to. See SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_VERTICAL

也可以看看:

onRestoreInstanceState

void onRestoreInstanceState (CoordinatorLayout parent, 
                V child, 
                Parcelable state)

挂钩允许行为重新应用其先前由onSaveInstanceState(CoordinatorLayout, V)生成的内部状态的表示。 这个函数永远不会被调用为null状态。

Parameters
parent CoordinatorLayout: the parent CoordinatorLayout
child V: child view to restore from
state Parcelable: The frozen state that had previously been returned by onSaveInstanceState(CoordinatorLayout, V).

也可以看看:

onSaveInstanceState

Parcelable onSaveInstanceState (CoordinatorLayout parent, 
                V child)

Hook允许一个行为生成一个内部状态的表示,以后可以用它来创建一个具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。

行为状态仅在父级 CoordinatorLayout和使用此行为的视图设置有效ID时才被保存。

Parameters
parent CoordinatorLayout: the parent CoordinatorLayout
child V: child view to restore from
Returns
Parcelable Returns a Parcelable object containing the behavior's current dynamic state.

也可以看看:

onStartNestedScroll

boolean onStartNestedScroll (CoordinatorLayout coordinatorLayout, 
                V child, 
                View directTargetChild, 
                View target, 
                int nestedScrollAxes)

当CoordinatorLayout的后代尝试启动嵌套滚动时调用。

Any Behavior associated with any direct child of the CoordinatorLayout may respond to this event and return true to indicate that the CoordinatorLayout should act as a nested scrolling parent for this scroll. Only Behaviors that return true from this method will receive subsequent nested scroll events.

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
directTargetChild View: the child view of the CoordinatorLayout that either is or contains the target of the nested scroll operation
target View: the descendant view of the CoordinatorLayout initiating the nested scroll
nestedScrollAxes int: the axes that this nested scroll applies to. See SCROLL_AXIS_HORIZONTAL, SCROLL_AXIS_VERTICAL
Returns
boolean true if the Behavior wishes to accept this nested scroll

也可以看看:

onStopNestedScroll

void onStopNestedScroll (CoordinatorLayout coordinatorLayout, 
                V child, 
                View target)

当嵌套滚动结束时调用。

与CoordinatorLayout的任何直接子项关联的任何行为都可以选择接受嵌套滚动,作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。

onStopNestedScroll表示单个嵌套滚动事件序列的结束。 这是清理与嵌套滚动相关的任何状态的好地方。

Parameters
coordinatorLayout CoordinatorLayout: the CoordinatorLayout parent of the view this Behavior is associated with
child V: the child view of the CoordinatorLayout this Behavior is associated with
target View: the descendant view of the CoordinatorLayout that initiated the nested scroll

也可以看看:

onTouchEvent

boolean onTouchEvent (CoordinatorLayout parent, 
                V child, 
                MotionEvent ev)

在行为开始 intercepting后,回应CoordinatorLayout触摸事件。

行为可以拦截触摸事件以帮助CoordinatorLayout操纵其子视图。 例如,行为可能允许用户拖动打开或关闭的UI窗格。 该方法应该执行视图布局状态的实际突变。

Parameters
parent CoordinatorLayout: the parent view currently receiving this touch event
child V: the child view associated with this Behavior
ev MotionEvent: the MotionEvent describing the touch event being processed
Returns
boolean true if this Behavior handled this touch event and would like to continue receiving events in this stream. The default always returns false.

setTag

void setTag (View child, 
                Object tag)

将行为特定的标签对象与给定的子视图相关联。 该对象将与子视图的LayoutParams一起存储。

Parameters
child View: child view to set tag with
tag Object: tag object to set

Hooray!