Behavior相关资料
来源:互联网 发布:pdf阅读器软件下载 编辑:程序博客网 时间:2024/06/14 23:29
public static abstract class Behavior<V extends View> { ............. /** * Determine whether the supplied child view has another specific sibling view as a * layout dependency. * * <p>This method will be called at least once in response to a layout request. If it * returns true for a given child and dependency view pair, the parent CoordinatorLayout * will:</p> * <ol> * <li>Always lay out this child after the dependent child is laid out, regardless * of child order.</li> * <li>Call {@link #onDependentViewChanged} when the dependency view's layout or * position changes.</li> * </ol> * 判断是否是所依赖的view。例如:return dependency instanceof ListView;判断child依赖的dependency是否是ListView * 只有返回true时才执行onDependentViewChanged方法 * @param parent the parent view of the given child * @param child the child view to test * @param dependency the proposed dependency of child * @return true if child's layout depends on the proposed dependency's layout, * false otherwise * * @see #onDependentViewChanged(CoordinatorLayout, android.view.View, android.view.View) */ public boolean layoutDependsOn(CoordinatorLayout parent, V child, View dependency) { return false; } /** * Respond to a change in a child's dependent view * * <p>This method is called whenever a dependent view changes in size or position outside * of the standard layout flow. A Behavior may use this method to appropriately update * the child view in response.</p> * * <p>A view's dependency is determined by * {@link #layoutDependsOn(CoordinatorLayout, android.view.View, android.view.View)} or * if {@code child} has set another view as it's anchor.</p> * * <p>Note that if a Behavior changes the layout of a child via this method, it should * also be able to reconstruct the correct position in * {@link #onLayoutChild(CoordinatorLayout, android.view.View, int) onLayoutChild}. * <code>onDependentViewChanged</code> will not be called during normal layout since * the layout of each child view will always happen in dependency order.</p> * * <p>If the Behavior changes the child view's size or position, it should return true. * The default implementation returns false.</p> * child依赖的view变化时在这个方法中做对child的相应改变,并且改变之后应该返回true * @param parent the parent view of the given child * @param child the child view to manipulate * @param dependency the dependent view that changed * @return true if the Behavior changed the child view's size or position, false otherwise */ public boolean onDependentViewChanged(CoordinatorLayout parent, V child, View dependency) { return false; } /** * Respond to a child's dependent view being removed. * * <p>This method is called after a dependent view has been removed from the parent. * A Behavior may use this method to appropriately update the child view in response.</p> * * <p>A view's dependency is determined by * {@link #layoutDependsOn(CoordinatorLayout, android.view.View, android.view.View)} or * if {@code child} has set another view as it's anchor.</p> * 当child依赖的view从父布局中移除时执行,当然前提是layoutDependsOn返回true * @param parent the parent view of the given child * @param child the child view to manipulate * @param dependency the dependent view that has been removed */ public void onDependentViewRemoved(CoordinatorLayout parent, V child, View dependency) { } /** * Called when a descendant of the CoordinatorLayout attempts to initiate a nested scroll. * * <p>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.</p> * 只要滑动就会被调用,要注意被依赖的view需要设置setNestedScrollingEnabled(true) * 可以判断滑动方向,比如:(nestedScrollAxes & ViewCompat.SCROLL_AXIS_VERTICAL) != 0 判断滑动方向是否为垂直方向 * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param directTargetChild the child view of the CoordinatorLayout that either is or * contains the target of the nested scroll operation * @param target the descendant view of the CoordinatorLayout initiating the nested scroll * @param nestedScrollAxes the axes that this nested scroll applies to. See * {@link ViewCompat#SCROLL_AXIS_HORIZONTAL}, * {@link ViewCompat#SCROLL_AXIS_VERTICAL} * @return true if the Behavior wishes to accept this nested scroll * * @see NestedScrollingParent#onStartNestedScroll(View, View, int) */ public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout, V child, View directTargetChild, View target, int nestedScrollAxes) { return false; } /** * Called when a nested scroll has been accepted by the CoordinatorLayout. * * <p>Any Behavior associated with any direct child of the CoordinatorLayout may elect * to accept the nested scroll as part of {@link #onStartNestedScroll}. Each Behavior * that returned true will receive subsequent nested scroll events for that nested scroll. * </p> * * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param directTargetChild the child view of the CoordinatorLayout that either is or * contains the target of the nested scroll operation * @param target the descendant view of the CoordinatorLayout initiating the nested scroll * @param nestedScrollAxes the axes that this nested scroll applies to. See * {@link ViewCompat#SCROLL_AXIS_HORIZONTAL}, * {@link ViewCompat#SCROLL_AXIS_VERTICAL} * * @see NestedScrollingParent#onNestedScrollAccepted(View, View, int) */ public void onNestedScrollAccepted(CoordinatorLayout coordinatorLayout, V child, View directTargetChild, View target, int nestedScrollAxes) { // Do nothing } /** * Called when a nested scroll has ended. * * <p>Any Behavior associated with any direct child of the CoordinatorLayout may elect * to accept the nested scroll as part of {@link #onStartNestedScroll}. Each Behavior * that returned true will receive subsequent nested scroll events for that nested scroll. * </p> * * <p><code>onStopNestedScroll</code> marks the end of a single nested scroll event * sequence. This is a good place to clean up any state related to the nested scroll. * </p> * * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param target the descendant view of the CoordinatorLayout that initiated * the nested scroll * * @see NestedScrollingParent#onStopNestedScroll(View) */ public void onStopNestedScroll(CoordinatorLayout coordinatorLayout, V child, View target) { // Do nothing } /** * Called when a nested scroll in progress has updated and the target has scrolled or * attempted to scroll. * * <p>Any Behavior associated with the direct child of the CoordinatorLayout may elect * to accept the nested scroll as part of {@link #onStartNestedScroll}. Each Behavior * that returned true will receive subsequent nested scroll events for that nested scroll. * </p> * * <p><code>onNestedScroll</code> is called each time the nested scroll is updated by the * nested scrolling child, with both consumed and unconsumed components of the scroll * supplied in pixels. <em>Each Behavior responding to the nested scroll will receive the * same values.</em> * </p> * * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param target the descendant view of the CoordinatorLayout performing the nested scroll * @param dxConsumed horizontal pixels consumed by the target's own scrolling operation * @param dyConsumed vertical pixels consumed by the target's own scrolling operation * @param dxUnconsumed horizontal pixels not consumed by the target's own scrolling * operation, but requested by the user * @param dyUnconsumed vertical pixels not consumed by the target's own scrolling operation, * but requested by the user * * @see NestedScrollingParent#onNestedScroll(View, int, int, int, int) */ public void onNestedScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { // Do nothing } /** * Called when a nested scroll in progress is about to update, before the target has * consumed any of the scrolled distance. * * <p>Any Behavior associated with the direct child of the CoordinatorLayout may elect * to accept the nested scroll as part of {@link #onStartNestedScroll}. Each Behavior * that returned true will receive subsequent nested scroll events for that nested scroll. * </p> * * <p><code>onNestedPreScroll</code> 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. <em>Each Behavior responding to the nested scroll will receive the * same values.</em> 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.</p> * onStartNestedScroll返回true时被调用 * 由上往下滑动dy<0并且滑动的力度越大dy越小;由下往上滑动dy>0并且滑动的力度越大dy越大。 * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param target the descendant view of the CoordinatorLayout performing the nested scroll * @param dx the raw horizontal number of pixels that the user attempted to scroll * @param dy the raw vertical number of pixels that the user attempted to scroll * @param consumed 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 * * @see NestedScrollingParent#onNestedPreScroll(View, int, int, int[]) */ public void onNestedPreScroll(CoordinatorLayout coordinatorLayout, V child, View target, int dx, int dy, int[] consumed) { // Do nothing } /** * Called when a nested scrolling child is starting a fling or an action that would * be a fling. * * <p>Any Behavior associated with the direct child of the CoordinatorLayout may elect * to accept the nested scroll as part of {@link #onStartNestedScroll}. Each Behavior * that returned true will receive subsequent nested scroll events for that nested scroll. * </p> * * <p><code>onNestedFling</code> is called when the current nested scrolling child view * detects the proper conditions for a fling. It reports if the child itself consumed * the fling. If it did not, the child is expected to show some sort of overscroll * indication. This method should return true if it consumes the fling, so that a child * that did not itself take an action in response can choose not to show an overfling * indication.</p> * * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param target the descendant view of the CoordinatorLayout performing the nested scroll * @param velocityX horizontal velocity of the attempted fling * @param velocityY vertical velocity of the attempted fling * @param consumed true if the nested child view consumed the fling * @return true if the Behavior consumed the fling * * @see NestedScrollingParent#onNestedFling(View, float, float, boolean) */ public boolean onNestedFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY, boolean consumed) { return false; } /** * Called when a nested scrolling child is about to start a fling. * * <p>Any Behavior associated with the direct child of the CoordinatorLayout may elect * to accept the nested scroll as part of {@link #onStartNestedScroll}. Each Behavior * that returned true will receive subsequent nested scroll events for that nested scroll. * </p> * * <p><code>onNestedPreFling</code> is called when the current nested scrolling child view * detects the proper conditions for a fling, but it has not acted on it yet. A * Behavior can return true to indicate that it consumed the fling. If at least one * Behavior returns true, the fling should not be acted upon by the child.</p> * * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param target the descendant view of the CoordinatorLayout performing the nested scroll * @param velocityX horizontal velocity of the attempted fling * @param velocityY vertical velocity of the attempted fling * @return true if the Behavior consumed the fling * * @see NestedScrollingParent#onNestedPreFling(View, float, float) */ public boolean onNestedPreFling(CoordinatorLayout coordinatorLayout, V child, View target, float velocityX, float velocityY) { return false; } /** * Called when the window insets have changed. * * <p>Any Behavior associated with the direct child of the CoordinatorLayout may elect * to handle the window inset change on behalf of it's associated view. * </p> * * @param coordinatorLayout the CoordinatorLayout parent of the view this Behavior is * associated with * @param child the child view of the CoordinatorLayout this Behavior is associated with * @param insets the new window insets. * * @return The insets supplied, minus any insets that were consumed */ public WindowInsetsCompat onApplyWindowInsets(CoordinatorLayout coordinatorLayout, V child, WindowInsetsCompat insets) { return insets; } /** * Hook allowing a behavior to re-apply a representation of its internal state that had * previously been generated by {@link #onSaveInstanceState}. This function will never * be called with a null state. * * @param parent the parent CoordinatorLayout * @param child child view to restore from * @param state The frozen state that had previously been returned by * {@link #onSaveInstanceState}. * * @see #onSaveInstanceState() */ public void onRestoreInstanceState(CoordinatorLayout parent, V child, Parcelable state) { // no-op } /** * Hook allowing a behavior to generate a representation of its internal state * that can later be used to create a new instance with that same state. * This state should only contain information that is not persistent or can * not be reconstructed later. * * <p>Behavior state is only saved when both the parent {@link CoordinatorLayout} and * a view using this behavior have valid IDs set.</p> * * @param parent the parent CoordinatorLayout * @param child child view to restore from * * @return Returns a Parcelable object containing the behavior's current dynamic * state. * * @see #onRestoreInstanceState(android.os.Parcelable) * @see View#onSaveInstanceState() */ public Parcelable onSaveInstanceState(CoordinatorLayout parent, V child) { return BaseSavedState.EMPTY_STATE; } }
0 0
- Behavior相关资料
- Android Behavior之相关解析
- 相关资料
- 相关资料
- 相关资料
- 相关资料
- 相关资料:
- 相关资料
- 相关资料
- behavior
- BEHAVIOR
- Behavior
- Behavior
- 典型相关分析相关资料
- php5相关网上资料
- SIP协议相关资料
- php相关资料
- 智能客户端相关资料
- 第13周阅读程序——虚函数
- Hybrid App开发实战
- Python基础学习笔记5 tuple,set
- 浏览器缓存简单机制
- Jacob解决Word文档的读写问题收藏
- Behavior相关资料
- Python模块探秘之EasyGui
- 关于百度云推送的问题
- 如何用HotSwapAgent和DCEVM让java开发像js开发一样高效(JRebel的替代方案)
- git的部分应用
- HDU 5691 状压dp
- duffing振子的四阶龙格库塔解
- RHEL6.5基本操作和实验环境部署
- 详解SYN Flood攻击原理与防范