public class BottomSheetBehavior
extends Behavior<V extends View>
java.lang.Object | ||
↳ | android.support.design.widget.CoordinatorLayout.Behavior<V extends android.view.View> | |
↳ | android.support.design.widget.BottomSheetBehavior<V extends android.view.View> |
一个交互行为插件,用于 CoordinatorLayout
的子视图,使其成为底部工作表。
Nested classes |
|
---|---|
class |
BottomSheetBehavior.BottomSheetCallback 回调监控有关底部表单的事件。 |
class |
BottomSheetBehavior.SavedState
|
XML attributes |
|
---|---|
android.support.design:behavior_hideable |
Whether this bottom sheet can be hidden by dragging it further downwards 可能是布尔值,例如“ |
android.support.design:behavior_peekHeight |
The height of the bottom sheet when it is collapsed. |
android.support.design:behavior_skipCollapsed |
Skip the collapsed state once expanded; no effect unless it is hideable 可能是布尔值,如“ |
Constants |
|
---|---|
int |
STATE_COLLAPSED 底部表单已折叠。 |
int |
STATE_DRAGGING 底部表单正在拖动。 |
int |
STATE_EXPANDED 底部表单展开。 |
int |
STATE_HIDDEN 底部表单被隐藏。 |
int |
STATE_SETTLING 底部表格正在沉降。 |
Public constructors |
|
---|---|
BottomSheetBehavior() 用于实例化BottomSheetBehaviors的默认构造函数。 |
|
BottomSheetBehavior(Context context, AttributeSet attrs) 用于从布局中膨胀BottomSheetBehaviors的默认构造函数。 |
Public methods |
|
---|---|
static <V extends View> BottomSheetBehavior<V> |
from(V view) 用于获取与 |
final int |
getPeekHeight() 获取底部表单在折叠时的高度。 |
boolean |
getSkipCollapsed() 设置此底部表单在展开一次后是否应隐藏隐藏状态。 |
final int |
getState() 获取底部工作表的当前状态。 |
boolean |
isHideable() 获取底部表单在被刷下时是否可以隐藏。 |
boolean |
onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event) 在分派给子视图之前,响应CoordinatorLayout触摸事件。 |
boolean |
onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection) 当父母CoordinatorLayout关于布置给定子视图时调用。 |
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 |
onRestoreInstanceState(CoordinatorLayout parent, V child, Parcelable state) 挂钩允许行为重新应用其以前由 |
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 event) 在此行为已启动 |
void |
setBottomSheetCallback(BottomSheetBehavior.BottomSheetCallback callback) 设置要通知底部表单事件的回调。 |
void |
setHideable(boolean hideable) 设置此底部表单是否可以在向下滑动时隐藏。 |
final void |
setPeekHeight(int peekHeight) 设置底部表单在折叠时的高度。 |
void |
setSkipCollapsed(boolean skipCollapsed) 设置此底部表单在展开一次后是否应隐藏隐藏状态。 |
final void |
setState(int state) 设置底部工作表的状态。 |
Inherited methods |
|
---|---|
From class android.support.design.widget.CoordinatorLayout.Behavior
|
|
From class java.lang.Object
|
是否可以通过向下拖动来隐藏底部表单
可能是布尔值,例如“ true
”或“ false
”。
相关方法:
底部表单折叠时的高度。
可能是尺寸值,这是一个浮点数,后面跟着一个单位,例如“ 14.5sp
”。 可用单位为:px(像素),dp(密度独立像素),sp(基于首选字体大小的缩放像素),单位为英寸和毫米。
相关方法:
在展开后跳过折叠状态; 除非它是可隐藏的,否则没有效果
可能是布尔值,例如“ true
”或“ false
”。
相关方法:
int STATE_COLLAPSED
底部表单已折叠。
常量值:4(0x00000004)
int STATE_DRAGGING
底部表单正在拖动。
常数值:1(0x00000001)
int STATE_EXPANDED
底部表单展开。
常量值:3(0x00000003)
int STATE_HIDDEN
底部表单被隐藏。
常量值:5(0x00000005)
int STATE_SETTLING
底部表格正在沉降。
常量值:2(0x00000002)
BottomSheetBehavior ()
用于实例化BottomSheetBehaviors的默认构造函数。
BottomSheetBehavior (Context context, AttributeSet attrs)
用于从布局中膨胀BottomSheetBehaviors的默认构造函数。
Parameters | |
---|---|
context |
Context : The Context . |
attrs |
AttributeSet : The AttributeSet . |
BottomSheetBehavior<V> from (V view)
用于获得与 BottomSheetBehavior
关联的 view
实用程序函数。
Parameters | |
---|---|
view |
V : The View with BottomSheetBehavior . |
Returns | |
---|---|
BottomSheetBehavior<V> |
The BottomSheetBehavior associated with the view . |
int getPeekHeight ()
获取底部表单在折叠时的高度。
相关XML属性:
Returns | |
---|---|
int |
The height of the collapsed bottom sheet. |
boolean getSkipCollapsed ()
设置此底部表单在展开一次后是否应隐藏隐藏状态。
相关XML属性:
Returns | |
---|---|
boolean |
Whether the bottom sheet should skip the collapsed state. |
int getState ()
获取底部工作表的当前状态。
Returns | |
---|---|
int |
One of STATE_EXPANDED , STATE_COLLAPSED , STATE_DRAGGING , and STATE_SETTLING . |
boolean isHideable ()
获取底部表单在被刷下时是否可以隐藏。
相关XML属性:
Returns | |
---|---|
boolean |
true if this bottom sheet can hide. |
boolean onInterceptTouchEvent (CoordinatorLayout parent, V child, MotionEvent event)
在分派给子视图之前,响应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 |
event |
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. |
boolean onLayoutChild (CoordinatorLayout parent, V child, int layoutDirection)
当父母CoordinatorLayout关于布置给定子视图时调用。
此方法可用于执行子视图的自定义或修改布局,以取代默认子布局行为。 行为的实现可以通过调用parent.onLayoutChild
委托给标准CoordinatorLayout测量行为。
如果行为实现onDependentViewChanged(CoordinatorLayout, android.view.View, android.view.View)
以响应相关视图更改而更改视图的位置,则还应该以尊重这些相关视图的方式实现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 |
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 |
void onNestedPreScroll (CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy, int[] consumed)
在目标已消耗任何滚动距离之前,正在进行嵌套滚动更新时调用。
任何与CoordinatorLayout的直接子项关联的行为都可能选择接受嵌套滚动,作为onStartNestedScroll(CoordinatorLayout, V, View, View, int)
一部分。 每个返回true的行为都将接收该嵌套滚动的后续嵌套滚动事件。
onNestedPreScroll
is called each time the nested scroll is updated by the nested scrolling child, before the nested scrolling child has consumed the scroll distance itself. Each Behavior responding to the nested scroll will receive the same values. The CoordinatorLayout will report as consumed the maximum number of pixels in either direction that any Behavior responding to the nested scroll reported as consumed.
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 |
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) . |
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. |
boolean onStartNestedScroll (CoordinatorLayout coordinatorLayout, V child, View directTargetChild, View target, int nestedScrollAxes)
当CoordinatorLayout的后代尝试启动嵌套滚动时调用。
与CoordinatorLayout的任何直接子节点相关联的任何行为都可能会响应此事件,并返回true以指示CoordinatorLayout应作为此滚动的嵌套滚动父级。 只有从此方法返回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 |
Returns | |
---|---|
boolean |
true if the Behavior wishes to accept this nested scroll |
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 |
boolean onTouchEvent (CoordinatorLayout parent, V child, MotionEvent event)
在行为开始 intercepting
之后,回应CoordinatorLayout触摸事件。
行为可以拦截触摸事件以帮助CoordinatorLayout操纵其子视图。 例如,行为可能允许用户拖动打开或关闭的UI窗格。 该方法应该执行视图布局状态的实际突变。
Parameters | |
---|---|
parent |
CoordinatorLayout : the parent view currently receiving this touch event |
child |
V : the child view associated with this Behavior |
event |
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. |
void setBottomSheetCallback (BottomSheetBehavior.BottomSheetCallback callback)
设置要通知底部表单事件的回调。
Parameters | |
---|---|
callback |
BottomSheetBehavior.BottomSheetCallback : The callback to notify when bottom sheet events occur. |
void setHideable (boolean hideable)
设置此底部表单是否可以在向下滑动时隐藏。
相关XML属性:
Parameters | |
---|---|
hideable |
boolean : true to make this bottom sheet hideable. |
void setPeekHeight (int peekHeight)
设置底部表单在折叠时的高度。
相关XML属性:
Parameters | |
---|---|
peekHeight |
int : The height of the collapsed bottom sheet in pixels. |
void setSkipCollapsed (boolean skipCollapsed)
设置此底部表单在展开一次后是否应隐藏隐藏状态。 除非表格是可隐藏的,否则将其设置为true将不起作用。
相关XML属性:
Parameters | |
---|---|
skipCollapsed |
boolean : True if the bottom sheet should skip the collapsed state. |
void setState (int state)
设置底部工作表的状态。 底部工作表将通过动画过渡到该状态。
Parameters | |
---|---|
state |
int : One of STATE_COLLAPSED , STATE_EXPANDED , or STATE_HIDDEN . |