Most visited

Recently visited

ViewDragHelper.Callback

public static abstract class ViewDragHelper.Callback
extends Object

java.lang.Object
   ↳ android.support.v4.widget.ViewDragHelper.Callback


Callback被用作ViewDragHelper的沟通渠道,使用它回到父视图。 on*方法在siginficant事件上被调用,并且预计若干访问器方法将根据请求向ViewDragHelper提供有关父视图状态的更多信息。 这个回调也会影响子视图的范围和可拖动性。

Summary

Public constructors

ViewDragHelper.Callback()

Public methods

int clampViewPositionHorizontal(View child, int left, int dx)

限制沿水平轴拖动的子视图的运动。

int clampViewPositionVertical(View child, int top, int dy)

沿垂直轴限制拖动的子视图的运动。

int getOrderedChildIndex(int index)

被调用来确定子视图的Z顺序。

int getViewHorizontalDragRange(View child)

以像素为单位返回可拖动子视图水平移动范围的大小。

int getViewVerticalDragRange(View child)

以像素为单位返回可拖动的子视图垂直移动范围的大小。

void onEdgeDragStarted(int edgeFlags, int pointerId)

当用户从父视图中的一个订阅边开始有意拖动而当前没有捕获子视图时调用。

boolean onEdgeLock(int edgeFlags)

当给定的边缘可能被锁定时调用。

void onEdgeTouched(int edgeFlags, int pointerId)

当父视图中的某个订阅边缘已被用户触摸而当前未捕获子视图时调用。

void onViewCaptured(View capturedChild, int activePointerId)

当捕获子视图用于拖动或安置时调用。

void onViewDragStateChanged(int state)

拖动状态改变时调用。

void onViewPositionChanged(View changedView, int left, int top, int dx, int dy)

当捕获视图的位置因拖动或解决而改变时调用。

void onViewReleased(View releasedChild, float xvel, float yvel)

当子视图不再被主动拖动时调用。

abstract boolean tryCaptureView(View child, int pointerId)

当用户的输入指示他们想用pointerId指示的指针捕获给定的子视图时调用。

Inherited methods

From class java.lang.Object

Public constructors

ViewDragHelper.Callback

ViewDragHelper.Callback ()

Public methods

clampViewPositionHorizontal

int clampViewPositionHorizontal (View child, 
                int left, 
                int dx)

限制沿水平轴拖动的子视图的运动。 默认实现不允许水平运动; 扩展类必须覆盖此方法并提供所需的夹持。

Parameters
child View: Child view being dragged
left int: Attempted motion along the X axis
dx int: Proposed change in position for left
Returns
int The new clamped position for left

clampViewPositionVertical

int clampViewPositionVertical (View child, 
                int top, 
                int dy)

沿垂直轴限制拖动的子视图的运动。 默认实现不允许垂直运动; 扩展类必须覆盖此方法并提供所需的夹持。

Parameters
child View: Child view being dragged
top int: Attempted motion along the Y axis
dy int: Proposed change in position for top
Returns
int The new clamped position for top

getOrderedChildIndex

int getOrderedChildIndex (int index)

被调用来确定子视图的Z顺序。

Parameters
index int: the ordered position to query for
Returns
int index of the view that should be ordered at position index

getViewHorizontalDragRange

int getViewHorizontalDragRange (View child)

以像素为单位返回可拖动子视图水平移动范围的大小。 对于无法水平移动的视图,此方法应返回0。

Parameters
child View: Child view to check
Returns
int range of horizontal motion in pixels

getViewVerticalDragRange

int getViewVerticalDragRange (View child)

以像素为单位返回可拖动的子视图垂直移动范围的大小。 对于不能垂直移动的视图,此方法应返回0。

Parameters
child View: Child view to check
Returns
int range of vertical motion in pixels

onEdgeDragStarted

void onEdgeDragStarted (int edgeFlags, 
                int pointerId)

当用户从父视图中的一个订阅边开始有意拖动而当前没有捕获子视图时调用。

Parameters
edgeFlags int: A combination of edge flags describing the edge(s) dragged
pointerId int: ID of the pointer touching the described edge(s)

也可以看看:

onEdgeLock

boolean onEdgeLock (int edgeFlags)

当给定的边缘可能被锁定时调用。 如果边缘拖动在开始之前被初步拒绝,但在onEdgeTouched(int, int)被调用之后,可能会发生这种情况。 此方法应返回true以锁定此边缘,或返回false以解除锁定。 默认行为是让边缘解锁。

Parameters
edgeFlags int: A combination of edge flags describing the edge(s) locked
Returns
boolean true to lock the edge, false to leave it unlocked

onEdgeTouched

void onEdgeTouched (int edgeFlags, 
                int pointerId)

当父视图中的某个订阅边缘已被用户触摸而当前未捕获子视图时调用。

Parameters
edgeFlags int: A combination of edge flags describing the edge(s) currently touched
pointerId int: ID of the pointer touching the described edge(s)

也可以看看:

onViewCaptured

void onViewCaptured (View capturedChild, 
                int activePointerId)

当捕获子视图用于拖动或安置时调用。 提供当前拖动捕获视图的指针的ID。 如果activePointerId被识别为INVALID_POINTER则捕获是程序化的而不是指针启动的。

Parameters
capturedChild View: Child view that was captured
activePointerId int: Pointer id tracking the child capture

onViewDragStateChanged

void onViewDragStateChanged (int state)

拖动状态改变时调用。 有关更多信息,请参见STATE_*常量。

Parameters
state int: The new drag state

也可以看看:

onViewPositionChanged

void onViewPositionChanged (View changedView, 
                int left, 
                int top, 
                int dx, 
                int dy)

当捕获视图的位置因拖动或解决而改变时调用。

Parameters
changedView View: View whose position changed
left int: New X coordinate of the left edge of the view
top int: New Y coordinate of the top edge of the view
dx int: Change in X position from the last call
dy int: Change in Y position from the last call

onViewReleased

void onViewReleased (View releasedChild, 
                float xvel, 
                float yvel)

当子视图不再被主动拖动时调用。 如果相关的话,也提供抛射速度。 速度值可以被限制为系统最小值或最大值。

调用代码可能会决定放弃或以其他方式释放视图以使其置于原位。 它应该使用settleCapturedViewAt(int, int)flingCapturedView(int, int, int, int) 如果回调调用其中一种方法,则ViewDragHelper将输入STATE_SETTLING ,并且视图捕获将不会完全结束,直到它完全停止。 如果这两个方法在onViewReleased返回之前都没有被调用,视图将停止并且ViewDragHelper将返回到STATE_IDLE

Parameters
releasedChild View: The captured child view now being released
xvel float: X velocity of the pointer as it left the screen in pixels per second.
yvel float: Y velocity of the pointer as it left the screen in pixels per second.

tryCaptureView

boolean tryCaptureView (View child, 
                int pointerId)

当用户的输入指示他们想用pointerId指示的指针捕获给定的子视图时调用。 如果允许用户使用指示的指针拖动给定的视图,回调应该返回true。

即使视图已被捕获,ViewDragHelper也可能多次为同一视图调用此方法; 这表明一个新的指针试图控制视图。

如果此方法返回true,则在捕获成功 onViewCaptured(android.view.View, int)调用 onViewCaptured(android.view.View, int)

Parameters
child View: Child the user is attempting to capture
pointerId int: ID of the pointer attempting the capture
Returns
boolean true if capture should be allowed, false otherwise

Hooray!