public class CoordinatorLayout
extends ViewGroup
implements NestedScrollingParent
java.lang.Object | |||
↳ | android.view.View | ||
↳ | android.view.ViewGroup | ||
↳ | android.support.design.widget.CoordinatorLayout |
CoordinatorLayout是一个超级动力 FrameLayout
。
CoordinatorLayout用于两个主要用例:
通过为CoordinatorLayout的子视图指定Behaviors
,您可以在单个父级内提供许多不同的交互,并且这些视图也可以相互交互。 View类可以使用DefaultBehavior
注释将其DefaultBehavior
CoordinatorLayout的子项时指定默认行为。
行为可以用来实现各种交互和额外的布局修改,从滑动抽屉和面板到可滑动触摸的元素和按钮,这些元素和按钮在移动和动画时都会粘到其他元素上。
协调员anchor
孩子可能有anchor
。 该视图ID必须对应于CoordinatorLayout的任意后代,但它可能不是被锚定的子对象本身或被锚定的子对象的后代。 这可以用来放置相对于其他任意内容窗格的浮动视图。
Nested classes |
|
---|---|
class |
CoordinatorLayout.Behavior<V extends View> 交互行为插件为 |
@interface |
CoordinatorLayout.DefaultBehavior 定义 |
class |
CoordinatorLayout.LayoutParams 描述 |
class |
CoordinatorLayout.SavedState
|
Inherited XML attributes |
|
---|---|
From class android.view.ViewGroup
|
|
From class android.view.View
|
Inherited constants |
---|
From class android.view.ViewGroup
|
From class android.view.View
|
Inherited fields |
---|
From class android.view.View
|
Public constructors |
|
---|---|
CoordinatorLayout(Context context) |
|
CoordinatorLayout(Context context, AttributeSet attrs) |
|
CoordinatorLayout(Context context, AttributeSet attrs, int defStyleAttr) |
Public methods |
|
---|---|
void |
dispatchDependentViewsChanged(View view) 允许呼叫者手动将 |
boolean |
doViewsOverlap(View first, View second) 检查两个视图是否相互重叠。 |
CoordinatorLayout.LayoutParams |
generateLayoutParams(AttributeSet attrs) 根据提供的属性集返回一组新的布局参数。 |
List<View> |
getDependencies(View child) 返回提供视图依赖的视图列表。 |
int |
getNestedScrollAxes() 返回此ViewGroup的嵌套滚动的当前轴。 |
Drawable |
getStatusBarBackground() 获取用于绘制状态栏的插入区域的绘图。 |
boolean |
isPointInChildBounds(View child, int x, int y) 检查CoordinatorLayout坐标中的给定点是否在给定直接子视图的视图范围内。 |
void |
onAttachedToWindow() 这在视图附加到窗口时被调用。 |
void |
onDetachedFromWindow() 这是在视图从窗口分离时调用的。 |
void |
onDraw(Canvas c) 实施这个来做你的绘画。 |
boolean |
onInterceptTouchEvent(MotionEvent ev) 实施此方法来拦截所有触摸屏幕动作事件。 |
void |
onLayoutChild(View child, int layoutDirection) |
void |
onMeasureChild(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) 打电话来测量每个单独的儿童视图,除非 |
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 |
onNestedScroll(View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) 反应到正在进行的嵌套滚动。 |
void |
onNestedScrollAccepted(View child, View target, int nestedScrollAxes) 响应成功声明嵌套滚动操作。 |
boolean |
onStartNestedScroll(View child, View target, int nestedScrollAxes) 响应启动可嵌套滚动操作的后代视图,并在适当的情况下声明嵌套滚动操作。 |
void |
onStopNestedScroll(View target) 反应到嵌套滚动操作结束。 |
boolean |
onTouchEvent(MotionEvent ev) 实现此方法来处理触摸屏幕动作事件。 |
void |
requestDisallowInterceptTouchEvent(boolean disallowIntercept) 当孩子不希望这个父母及其祖先用 |
void |
setFitsSystemWindows(boolean fitSystemWindows) 设置此视图是否应考虑系统屏幕装饰(如状态栏和插入其内容); 即控制是否执行 |
void |
setOnHierarchyChangeListener(ViewGroup.OnHierarchyChangeListener onHierarchyChangeListener) 当一个孩子被添加到这个视图或从这个视图中删除时注册一个回调被调用。 |
void |
setStatusBarBackground(Drawable bg) 设置一个drawable在状态栏的insets区域绘制。 |
void |
setStatusBarBackgroundColor(int color) 设置一个drawable在状态栏的insets区域绘制。 |
void |
setStatusBarBackgroundResource(int resId) 设置一个drawable在状态栏的insets区域绘制。 |
void |
setVisibility(int visibility) 设置此视图的启用状态。 |
Protected methods |
|
---|---|
boolean |
checkLayoutParams(ViewGroup.LayoutParams p) |
boolean |
drawChild(Canvas canvas, View child, long drawingTime) 绘制这个视图组的一个孩子。 |
void |
drawableStateChanged() 只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。 |
CoordinatorLayout.LayoutParams |
generateDefaultLayoutParams() 返回一组默认布局参数。 |
CoordinatorLayout.LayoutParams |
generateLayoutParams(ViewGroup.LayoutParams p) 根据提供的布局参数返回一组安全的布局参数。 |
int |
getSuggestedMinimumHeight() 返回视图应该使用的建议最小高度。 |
int |
getSuggestedMinimumWidth() 返回视图应该使用的建议最小宽度。 |
void |
onLayout(boolean changed, int l, int t, int r, int b) 当这个视图为每个孩子分配一个大小和位置时,从布局调用。 |
void |
onMeasure(int widthMeasureSpec, int heightMeasureSpec) 测量视图及其内容以确定测量宽度和测量高度。 |
void |
onRestoreInstanceState(Parcelable state) 挂钩允许视图重新应用先前由 |
Parcelable |
onSaveInstanceState() 钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 |
boolean |
verifyDrawable(Drawable who) 如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。 |
Inherited methods |
|
---|---|
From class android.view.ViewGroup
|
|
From class android.view.View
|
|
From class java.lang.Object
|
|
From interface android.view.ViewParent
|
|
From interface android.view.ViewManager
|
|
From interface android.graphics.drawable.Drawable.Callback
|
|
From interface android.view.KeyEvent.Callback
|
|
From interface android.view.accessibility.AccessibilityEventSource
|
|
From interface android.support.v4.view.NestedScrollingParent
|
CoordinatorLayout (Context context, AttributeSet attrs)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
CoordinatorLayout (Context context, AttributeSet attrs, int defStyleAttr)
Parameters | |
---|---|
context |
Context
|
attrs |
AttributeSet
|
defStyleAttr |
int
|
void dispatchDependentViewsChanged (View view)
允许调用者手动调度 onDependentViewChanged(CoordinatorLayout, View, View)
到相关的 CoordinatorLayout.Behavior
视图实例,视图取决于提供的 View
。
您通常不需要调用此方法,因为在视图更改时它将自动完成。
Parameters | |
---|---|
view |
View : the View to find dependents of to dispatch the call. |
boolean doViewsOverlap (View first, View second)
检查两个视图是否相互重叠。 视图需要是视图层次结构中此CoordinatorLayout
后代。
Parameters | |
---|---|
first |
View : first child view to test |
second |
View : second child view to test |
Returns | |
---|---|
boolean |
true if both views are visible and overlap each other |
CoordinatorLayout.LayoutParams generateLayoutParams (AttributeSet attrs)
根据提供的属性集返回一组新的布局参数。
Parameters | |
---|---|
attrs |
AttributeSet : the attributes to build the layout parameters from |
Returns | |
---|---|
CoordinatorLayout.LayoutParams |
an instance of ViewGroup.LayoutParams or one of its descendants |
List<View> getDependencies (View child)
返回提供视图依赖的视图列表。 不要存储此列表,因为它的内容可能无法在调用方之外有效。
Parameters | |
---|---|
child |
View : the view to find dependencies for. |
Returns | |
---|---|
List<View> |
the list of views which child depends on. |
int getNestedScrollAxes ()
返回此ViewGroup的嵌套滚动的当前轴。
返回 SCROLL_AXIS_NONE
以外的ViewGroup当前充当层次结构中一个或多个后代视图的嵌套滚动父项。
Returns | |
---|---|
int |
Flags indicating the current axes of nested scrolling |
Drawable getStatusBarBackground ()
获取用于绘制状态栏的插入区域的绘图。
Returns | |
---|---|
Drawable |
The status bar background drawable, or null if none set |
boolean isPointInChildBounds (View child, int x, int y)
检查CoordinatorLayout坐标中的给定点是否在给定直接子视图的视图范围内。
Parameters | |
---|---|
child |
View : child view to test |
x |
int : X coordinate to test, in the CoordinatorLayout's coordinate system |
y |
int : Y coordinate to test, in the CoordinatorLayout's coordinate system |
Returns | |
---|---|
boolean |
true if the point is within the child view's bounds, false otherwise |
void onAttachedToWindow ()
这在视图附加到窗口时被调用。 此时它有一个Surface并将开始绘制。 注意这个函数保证在onDraw(android.graphics.Canvas)
之前被调用,但是它可以在第一个onDraw之前的任何时候调用 - 包括在onMeasure(int, int)
之前或之后。
void onDetachedFromWindow ()
这是在视图从窗口分离时调用的。 此时它不再有绘图表面。
void onDraw (Canvas c)
实施这个来做你的绘画。
Parameters | |
---|---|
c |
Canvas : the canvas on which the background will be drawn |
boolean onInterceptTouchEvent (MotionEvent ev)
实施此方法来拦截所有触摸屏幕动作事件。 这允许您在事件发送给您的孩子时观看事件,并在任何时候掌握当前手势的所有权。
使用这个函数需要注意,因为它与View.onTouchEvent(MotionEvent)
有相当复杂的交互,并且使用它需要以正确的方式执行该方法。 活动将按以下顺序收到:
ACTION_CANCEL
, and all further events will be delivered to your onTouchEvent() method and no longer appear here. Parameters | |
---|---|
ev |
MotionEvent : The motion event being dispatched down the hierarchy. |
Returns | |
---|---|
boolean |
Return true to steal motion events from the children and have them dispatched to this ViewGroup through onTouchEvent(). The current target will receive an ACTION_CANCEL event, and no further messages will be delivered here. |
void onLayoutChild (View child, int layoutDirection)
除非有Behavior
的存在,否则Behavior
每个孩子的视图。 行为可能会选择将子测量委托给此方法。
Parameters | |
---|---|
child |
View : child view to lay out |
layoutDirection |
int : the resolved layout direction for the CoordinatorLayout, such as LAYOUT_DIRECTION_LTR or LAYOUT_DIRECTION_RTL . |
void onMeasureChild (View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed)
打电话来测量每个单独的儿童视图,除非Behavior
存在。 行为可能会选择将子测量委托给此方法。
Parameters | |
---|---|
child |
View : 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) |
boolean onNestedFling (View target, float velocityX, float velocityY, boolean consumed)
从嵌套滚动中请求投掷。
这种方法表示嵌套滚动的孩子已经检测到适合于一阵子的条件。 通常这意味着触摸滚动以velocity
的滚动方向结束,沿着滚动轴线满足或超过minimum fling velocity
。
如果嵌套的滚动子视图通常会抛出,但它位于其自己的内容的边缘,则可以使用此方法代替该嵌套的滚动父级。 父母可以有选择地消费一下,或者观察孩子的情绪。
Parameters | |
---|---|
target |
View : View that initiated the nested scroll |
velocityX |
float : Horizontal velocity in pixels per second |
velocityY |
float : Vertical velocity in pixels per second |
consumed |
boolean : true if the child consumed the fling, false otherwise |
Returns | |
---|---|
boolean |
true if this parent consumed or otherwise reacted to the fling |
boolean onNestedPreFling (View target, float velocityX, float velocityY)
在目标视图消耗它之前,将其反应为嵌套的拖动。
这种方法意味着一个嵌套的滚动孩子已经检测到沿着每个轴具有给定速度的飞掷。 通常这意味着触摸滚动以velocity
的滚动方向结束,沿着可滚动的轴线满足或超过minimum fling velocity
。
如果一个嵌套的滚动父级正在将动作作为pre-scroll
一部分进行pre-scroll
,则它可能也会使用预先动作来完成相同的动作。 通过从此方法返回true
,父母表示孩子不应该true
自己的内部内容。
Parameters | |
---|---|
target |
View : View that initiated the nested scroll |
velocityX |
float : Horizontal velocity in pixels per second |
velocityY |
float : Vertical velocity in pixels per second |
Returns | |
---|---|
boolean |
true if this parent consumed the fling ahead of the target view |
void onNestedPreScroll (View target, int dx, int dy, int[] consumed)
在目标视图占用滚动的一部分之前,对正在进行的嵌套滚动进行处理。
当经常使用嵌套滚动时,父视图可能希望有机会在嵌套滚动子代之前使用滚动。 一个例子是一个包含可滚动列表的抽屉。 用户将希望能够在列表本身开始滚动之前将列表完全滚动到视图中。
onNestedPreScroll
当嵌套滚动孩子调用被称为dispatchNestedPreScroll(int, int, int[], int[])
。 该实现应报告dx,dy所报告的滚动像素是如何在consumed
阵列中消耗的。 索引0对应于dx,索引1对应于dy。 该参数永远不会为空。 消耗[0]和消耗[1]的初始值将始终为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 |
void onNestedScroll (View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed)
反应到正在进行的嵌套滚动。
当ViewParent的当前嵌套滚动子视图调度一个嵌套滚动事件时,将调用此方法。 要接收对此方法的调用,ViewParent必须事先返回true
以便拨打onStartNestedScroll(View, View, int)
。
将滚动距离的消耗部分和未消耗部分都报告给ViewParent。 例如,实现可以选择使用消费部分来匹配或追踪多个子元素的滚动位置。 未消耗部分可用于允许连续拖动多个滚动或可拖动元素,诸如在垂直抽屉内滚动列表,其中抽屉在达到内部滚动内容的边缘时开始拖动。
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 |
void onNestedScrollAccepted (View child, View target, int nestedScrollAxes)
响应成功声明嵌套滚动操作。
此方法将在onStartNestedScroll
返回true后onStartNestedScroll
。 它为视图及其超类为嵌套滚动执行初始配置提供了机会。 如果存在这种方法的实现,则应始终调用其超类的此方法的实现。
Parameters | |
---|---|
child |
View : Direct child of this ViewParent containing target |
target |
View : View that initiated the nested scroll |
nestedScrollAxes |
int : Flags consisting of SCROLL_AXIS_HORIZONTAL , SCROLL_AXIS_VERTICAL or both |
boolean onStartNestedScroll (View child, View target, int nestedScrollAxes)
响应启动可嵌套滚动操作的后代视图,并在适当的情况下声明嵌套滚动操作。
该方法将被调用以响应调用startNestedScroll(int)
的后代视图。 视图层次结构中的每个父代将有机会通过返回true
来响应和声明嵌套滚动操作。
ViewParent实现可能会重写此方法,以指示视图何时愿意支持即将开始的嵌套滚动操作。 如果它返回true,则在正在进行滚动操作期间,此ViewParent将成为目标视图的嵌套滚动父级。 当嵌套滚动完成后,此ViewParent将收到对onStopNestedScroll(View)
的呼叫。
Parameters | |
---|---|
child |
View : Direct child of this ViewParent containing target |
target |
View : View that initiated the nested scroll |
nestedScrollAxes |
int : Flags consisting of SCROLL_AXIS_HORIZONTAL , SCROLL_AXIS_VERTICAL or both |
Returns | |
---|---|
boolean |
true if this ViewParent accepts the nested scroll operation |
void onStopNestedScroll (View target)
反应到嵌套滚动操作结束。
在嵌套滚动操作后执行清理。 此方法将在嵌套滚动停止时调用,例如,当嵌套触摸滚动以ACTION_UP
或ACTION_CANCEL
事件结束时。 如果存在这种方法的实现,则应始终调用其超类的此方法的实现。
Parameters | |
---|---|
target |
View : View that initiated the nested scroll |
boolean onTouchEvent (MotionEvent ev)
实现此方法来处理触摸屏幕动作事件。
如果此方法用于检测点击操作,建议通过执行并调用performClick()
来执行操作。 这将确保一致的系统行为,包括:
ACTION_CLICK
when accessibility features are enabled Parameters | |
---|---|
ev |
MotionEvent : The motion event. |
Returns | |
---|---|
boolean |
True if the event was handled, false otherwise. |
void requestDisallowInterceptTouchEvent (boolean disallowIntercept)
当孩子不希望这个父母及其祖先用 onInterceptTouchEvent(MotionEvent)
拦截触摸事件时 onInterceptTouchEvent(MotionEvent)
。
这位家长应该将此通知传递给其父母。 这位家长必须在接触期间服从这个要求(也就是说,只有在这位家长收到了或取消后才清除标志。
Parameters | |
---|---|
disallowIntercept |
boolean : True if the child does not want the parent to intercept touch events. |
void setFitsSystemWindows (boolean fitSystemWindows)
设置此视图是否应考虑系统屏幕装饰(如状态栏和插入其内容); 即控制是否执行fitSystemWindows(Rect)
的默认实现。 请参阅该方法以获取更多详细信
请注意,如果您提供自己的 fitSystemWindows(Rect)
实现,则不需要将此标志设置为true - 您的实现将覆盖检查此标志的默认实现。
Parameters | |
---|---|
fitSystemWindows |
boolean : If true, then the default implementation of fitSystemWindows(Rect) will be executed. |
void setOnHierarchyChangeListener (ViewGroup.OnHierarchyChangeListener onHierarchyChangeListener)
当一个孩子被添加到这个视图或从这个视图中删除时注册一个回调被调用。
Parameters | |
---|---|
onHierarchyChangeListener |
ViewGroup.OnHierarchyChangeListener : the callback to invoke on hierarchy change |
void setStatusBarBackground (Drawable bg)
设置一个drawable在状态栏的insets区域绘制。 请注意,只有在此DrawerLayout适合SystemWindows时才会激活此功能。
Parameters | |
---|---|
bg |
Drawable : Background drawable to draw behind the status bar |
void setStatusBarBackgroundColor (int color)
设置一个drawable在状态栏的insets区域绘制。 请注意,只有在此DrawerLayout适合SystemWindows时才会激活此功能。
Parameters | |
---|---|
color |
int : Color to use as a background drawable to draw behind the status bar in 0xAARRGGBB format. |
void setStatusBarBackgroundResource (int resId)
设置一个drawable在状态栏的insets区域绘制。 请注意,只有在此DrawerLayout适合SystemWindows时才会激活此功能。
Parameters | |
---|---|
resId |
int : Resource id of a background drawable to draw behind the status bar |
void setVisibility (int visibility)
设置此视图的启用状态。
Parameters | |
---|---|
visibility |
int : One of VISIBLE , INVISIBLE , or GONE . |
boolean checkLayoutParams (ViewGroup.LayoutParams p)
Parameters | |
---|---|
p |
ViewGroup.LayoutParams
|
Returns | |
---|---|
boolean |
boolean drawChild (Canvas canvas, View child, long drawingTime)
绘制这个视图组的一个孩子。 这个方法负责让画布处于正确的状态。 这包括剪裁,翻译,以便孩子的滚动起点在0,0,并应用任何动画转换。
Parameters | |
---|---|
canvas |
Canvas : The canvas on which to draw the child |
child |
View : Who to draw |
drawingTime |
long : The time at which draw is occurring |
Returns | |
---|---|
boolean |
True if an invalidate() was issued |
void drawableStateChanged ()
只要视图的状态发生变化,就会调用此函数,使得它影响所显示的可绘制状态。
如果View有一个StateListAnimator,它也将被调用来运行必要的状态改变动画。
重写此功能时,一定要调用超类。
CoordinatorLayout.LayoutParams generateDefaultLayoutParams ()
返回一组默认布局参数。 当传递给addView(View)
的视图没有设置布局参数时,请求这些参数。 如果返回null,则会从addView引发异常。
Returns | |
---|---|
CoordinatorLayout.LayoutParams |
a set of default layout parameters or null |
CoordinatorLayout.LayoutParams generateLayoutParams (ViewGroup.LayoutParams p)
根据提供的布局参数返回一组安全的布局参数。 当一个ViewGroup被传递了一个View,其布局参数没有通过checkLayoutParams(android.view.ViewGroup.LayoutParams)
的测试时,这个方法被调用。 此方法应该返回一组适合此ViewGroup的布局参数,可能是通过从指定的一组布局参数中复制适当的属性。
Parameters | |
---|---|
p |
ViewGroup.LayoutParams : The layout parameters to convert into a suitable set of layout parameters for this ViewGroup. |
Returns | |
---|---|
CoordinatorLayout.LayoutParams |
an instance of ViewGroup.LayoutParams or one of its descendants |
int getSuggestedMinimumHeight ()
返回视图应该使用的建议最小高度。 这将返回视图的最小高度和背景的最小高度( getMinimumHeight()
)的最大值。
在 onMeasure(int, int)
中使用时,调用者仍应确保返回的高度在家长的要求范围内。
Returns | |
---|---|
int |
The suggested minimum height of the view. |
int getSuggestedMinimumWidth ()
返回视图应该使用的建议最小宽度。 这将返回视图的最小宽度和背景的最小宽度( getMinimumWidth()
)的最大值。
在 onMeasure(int, int)
中使用时,调用者仍应确保返回的宽度符合父级的要求。
Returns | |
---|---|
int |
The suggested minimum width of the view. |
void onLayout (boolean changed, int l, int t, int r, int b)
当这个视图为每个孩子分配一个大小和位置时,从布局调用。 带孩子的派生类应该覆盖这个方法,并调用他们每个孩子的布局。
Parameters | |
---|---|
changed |
boolean : This is a new size or position for this view |
l |
int : Left position, relative to parent |
t |
int : Top position, relative to parent |
r |
int : Right position, relative to parent |
b |
int : Bottom position, relative to parent |
void onMeasure (int widthMeasureSpec, int heightMeasureSpec)
测量视图及其内容以确定测量宽度和测量高度。 该方法由measure(int, int)
调用, measure(int, int)
子类覆盖以提供其内容的准确和有效的度量。
合同:覆盖此方法时,您必须致电setMeasuredDimension(int, int)
来存储此视图的测量宽度和高度。 如果不这样做将触发IllegalStateException
,由measure(int, int)
引发。 调用超类' onMeasure(int, int)
是一种有效的用法。
Measure的基类实现默认为背景大小,除非MeasureSpec允许更大的大小。 子类应该覆盖onMeasure(int, int)
以提供更好的内容度量。
如果此方法被覆盖,则子类的责任是确保测量的高度和宽度至少为视图的最小高度和宽度( getSuggestedMinimumHeight()
和 getSuggestedMinimumWidth()
)。
Parameters | |
---|---|
widthMeasureSpec |
int : horizontal space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec . |
heightMeasureSpec |
int : vertical space requirements as imposed by the parent. The requirements are encoded with View.MeasureSpec . |
void onRestoreInstanceState (Parcelable state)
吊钩允许视图重新应用先前由onSaveInstanceState()
生成的内部状态的表示。 这个函数永远不会被调用为null状态。
Parameters | |
---|---|
state |
Parcelable : The frozen state that had previously been returned by onSaveInstanceState() . |
Parcelable onSaveInstanceState ()
钩子允许视图生成其内部状态的表示,稍后可用于创建具有相同状态的新实例。 此状态应仅包含不持久或以后不能重建的信息。 例如,您永远不会将当前位置存储在屏幕上,因为当视图的新实例放置在其视图层次结构中时会再次计算该位置。
您可能在此处存储的某些示例:文本视图中的当前光标位置(但通常不是文本本身,因为它存储在内容提供程序或其他永久性存储中),即当前在列表视图中选择的项目。
Returns | |
---|---|
Parcelable |
Returns a Parcelable object containing the view's current dynamic state, or null if there is nothing interesting to save. The default implementation returns null. |
boolean verifyDrawable (Drawable who)
如果你的视图子类正在显示它自己的Drawable对象,它应该覆盖这个函数,并且对于它显示的任何Drawable返回true。 这样可以安排这些可绘制的动画。
重写此功能时,一定要调用超类。
Parameters | |
---|---|
who |
Drawable : The Drawable to verify. Return true if it is one you are displaying, else return the result of calling through to the super class. |
Returns | |
---|---|
boolean |
boolean If true than the Drawable is being displayed in the view; else false and it is not allowed to animate. |