Most visited

Recently visited

AutoScrollHelper

public abstract class AutoScrollHelper
extends Object implements View.OnTouchListener

java.lang.Object
   ↳ android.support.v4.widget.AutoScrollHelper
Known Direct Subclasses


AutoScrollHelper是一个工具类,用于将自动边缘触发的滚动添加到视图。

注:实现类负责重写scrollTargetBy(int, int)canTargetScrollHorizontally(int) ,并canTargetScrollVertically(int)方法。 有关ListViewAutoScrollHelperListView实现,请参阅ListViewAutoScrollHelper

Activation

Automatic scrolling starts when the user touches within an activation area. By default, activation areas are defined as the top, left, right, and bottom 20% of the host view's total area. Touching within the top activation area scrolls up, left scrolls to the left, and so on.

随着用户接近激活区域的极端边缘,滚动加速到最大速度。 当使用默认边缘类型EDGE_TYPE_INSIDE_EXTEND ,移动到视图边界之外将以最大速度滚动。

可以配置以下激活属性:

Scrolling

When automatic scrolling is active, the helper will repeatedly call scrollTargetBy(int, int) to apply new scrolling offsets.

可以配置以下滚动属性:

Summary

Constants

int EDGE_TYPE_INSIDE

边缘类型,指定从视图边界开始并向内延伸的激活区域。

int EDGE_TYPE_INSIDE_EXTEND

边缘类型,指定从视图边界开始并向内延伸的激活区域。

int EDGE_TYPE_OUTSIDE

边缘类型,指定从视图边界开始并向外扩展的激活区域。

float NO_MAX

恒传递到 setMaximumEdges(float, float)setMaximumVelocity(float, float) ,或 setMinimumVelocity(float, float)

float NO_MIN

常量传递给 setMaximumEdges(float, float)setMaximumVelocity(float, float)setMinimumVelocity(float, float)

float RELATIVE_UNSPECIFIED

常量传递给 setRelativeEdges(float, float)setRelativeVelocity(float, float)

Public constructors

AutoScrollHelper(View target)

为滚动指定的目标视图创建一个新的帮助器。

Public methods

abstract boolean canTargetScrollHorizontally(int direction)

重写此方法以返回目标视图是否可以在某个方向上水平滚动。

abstract boolean canTargetScrollVertically(int direction)

重写此方法以返回目标视图是否可以在某个方向上垂直滚动。

boolean isEnabled()
boolean isExclusive()

指示滚动助手是否在滚动期间专门处理触摸事件。

boolean onTouch(View v, MotionEvent event)

通过激活自动滚动,调整滚动速度或停止来处理触摸事件。

abstract void scrollTargetBy(int deltaX, int deltaY)

重写此方法以按指定数量的像素滚动目标视图。

AutoScrollHelper setActivationDelay(int delayMillis)

在激活自动滚动之前设置进入激活边沿之后的延迟。

AutoScrollHelper setEdgeType(int type)

设置激活边界类型,其中一个:

  • EDGE_TYPE_INSIDE for edges that respond to touches inside the bounds of the host view.

AutoScrollHelper setEnabled(boolean enabled)

设置是否启用滚动助手,并且应该响应触摸事件。

AutoScrollHelper setExclusive(boolean exclusive)

在滚动期间启用或禁用对触摸事件的独占处理。

AutoScrollHelper setMaximumEdges(float horizontalMax, float verticalMax)

设置绝对最大边缘大小。

AutoScrollHelper setMaximumVelocity(float horizontalMax, float verticalMax)

设置绝对最大滚动速度。

AutoScrollHelper setMinimumVelocity(float horizontalMin, float verticalMin)

设置绝对最小滚动速度。

AutoScrollHelper setRampDownDuration(int durationMillis)

设置取消激活自动滚动后需要减速至停止的时间量。

AutoScrollHelper setRampUpDuration(int durationMillis)

设置激活自动滚动后达到当前触摸位置所需的目标速度的时间量。

AutoScrollHelper setRelativeEdges(float horizontal, float vertical)

设置相对于主机视图尺寸的激活边缘大小。

AutoScrollHelper setRelativeVelocity(float horizontal, float vertical)

设置目标滚动速度相对于主机视图的尺寸。

Inherited methods

From class java.lang.Object
From interface android.view.View.OnTouchListener

Constants

EDGE_TYPE_INSIDE

int EDGE_TYPE_INSIDE

边缘类型,指定从视图边界开始并向内延伸的激活区域。 移动到视图边界之外将停止滚动。

也可以看看:

常量值:0(0x00000000)

EDGE_TYPE_INSIDE_EXTEND

int EDGE_TYPE_INSIDE_EXTEND

边缘类型,指定从视图边界开始并向内延伸的激活区域。 激活开始后,移动到视图范围外将继续滚动。

也可以看看:

常数值:1(0x00000001)

EDGE_TYPE_OUTSIDE

int EDGE_TYPE_OUTSIDE

边缘类型,指定从视图边界开始并向外扩展的激活区域。 在视图边界内移动将停止滚动。

也可以看看:

常量值:2(0x00000002)

NO_MAX

float NO_MAX

恒传递到setMaximumEdges(float, float)setMaximumVelocity(float, float) ,或setMinimumVelocity(float, float) 使用此值可确保始终使用计算的相对值,而不受限于特定的最小值或最大值。

常数值:3.4028235E38

NO_MIN

float NO_MIN

常量传递到setMaximumEdges(float, float)setMaximumVelocity(float, float)setMinimumVelocity(float, float) 使用此值可确保始终使用计算的相对值,而不受限于特定的最小值或最大值。

常数值:0.0

RELATIVE_UNSPECIFIED

float RELATIVE_UNSPECIFIED

常量传递给setRelativeEdges(float, float)setRelativeVelocity(float, float) 使用此值可确保计算出的相对值被忽略,并始终使用绝对最大值。

常数值:0.0

Public constructors

AutoScrollHelper

AutoScrollHelper (View target)

为滚动指定的目标视图创建一个新的帮助器。

由此产生的帮助器可以通过链接setter调用进行配置,并且应该设置为目标视图上的触摸监听器。

默认情况下,辅助程序处于禁用状态,在使用 setEnabled(boolean)启用触摸事件之前不会对触摸事件做出响应。

Parameters
target View: The view to automatically scroll.

Public methods

canTargetScrollHorizontally

boolean canTargetScrollHorizontally (int direction)

重写此方法以返回目标视图是否可以在某个方向上水平滚动。

Parameters
direction int: Negative to check scrolling left, positive to check scrolling right.
Returns
boolean true if the target view is able to horizontally scroll in the specified direction.

canTargetScrollVertically

boolean canTargetScrollVertically (int direction)

重写此方法以返回目标视图是否可以在某个方向上垂直滚动。

Parameters
direction int: Negative to check scrolling up, positive to check scrolling down.
Returns
boolean true if the target view is able to vertically scroll in the specified direction.

isEnabled

boolean isEnabled ()

Returns
boolean True if this helper is enabled and responding to touch events.

isExclusive

boolean isExclusive ()

指示滚动助手是否在滚动期间专门处理触摸事件。

Returns
boolean True if exclusive handling of touch events during scrolling is enabled, false otherwise.

也可以看看:

onTouch

boolean onTouch (View v, 
                MotionEvent event)

通过激活自动滚动,调整滚动速度或停止来处理触摸事件。

如果isExclusive()为false,则始终返回false,以便主机视图可以处理触摸事件。 否则,在自动滚动处于活动状态时返回true,否则返回false。

Parameters
v View: The view the touch event has been dispatched to.
event MotionEvent: The MotionEvent object containing full information about the event.
Returns
boolean True if the listener has consumed the event, false otherwise.

scrollTargetBy

void scrollTargetBy (int deltaX, 
                int deltaY)

重写此方法以按指定数量的像素滚动目标视图。

Parameters
deltaX int: The number of pixels to scroll by horizontally.
deltaY int: The number of pixels to scroll by vertically.

setActivationDelay

AutoScrollHelper setActivationDelay (int delayMillis)

在激活自动滚动之前设置进入激活边沿之后的延迟。 默认情况下,激活延迟设置为getTapTimeout()

指定零延迟将在触摸位置进入激活边沿后立即开始自动滚动。

Parameters
delayMillis int: The activation delay in milliseconds.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setEdgeType

AutoScrollHelper setEdgeType (int type)

设置激活边界类型,其中一个:

  • EDGE_TYPE_INSIDE for edges that respond to touches inside the bounds of the host view. If touch moves outside the bounds, scrolling will stop.
  • EDGE_TYPE_INSIDE_EXTEND for inside edges that continued to scroll when touch moves outside the bounds of the host view.
  • EDGE_TYPE_OUTSIDE for edges that only respond to touches that move outside the bounds of the host view.

Parameters
type int: The type of edge to use.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setEnabled

AutoScrollHelper setEnabled (boolean enabled)

设置是否启用滚动助手,并且应该响应触摸事件。

Parameters
enabled boolean: Whether the scroll helper is enabled.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setExclusive

AutoScrollHelper setExclusive (boolean exclusive)

在滚动期间启用或禁用对触摸事件的独占处理。 默认情况下,独占处理被禁用,目标视图接收所有触摸事件。

启用后,如果助手当前正在滚动,则 onTouch(View, MotionEvent)将返回true, onTouch(View, MotionEvent)返回false。

Parameters
exclusive boolean: True to exclusively handle touch events during scrolling, false to allow the target view to receive all touch events.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setMaximumEdges

AutoScrollHelper setMaximumEdges (float horizontalMax, 
                float verticalMax)

设置绝对最大边缘大小。

如果未指定相对边尺寸,则激活边将始终为最大边尺寸。 如果指定了相对边缘和最大边缘,则将使用最大边缘来约束计算的相对边缘大小。

Parameters
horizontalMax float: The maximum horizontal edge size in pixels, or NO_MAX to use the unconstrained calculated relative value.
verticalMax float: The maximum vertical edge size in pixels, or NO_MAX to use the unconstrained calculated relative value.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setMaximumVelocity

AutoScrollHelper setMaximumVelocity (float horizontalMax, 
                float verticalMax)

设置绝对最大滚动速度。

如果没有指定相对速度,滚动将始终达到相同的最大速度。 如果指定了相对速度和最大速度,则将使用最大速度来限制计算出的相对速度。

Parameters
horizontalMax float: The maximum horizontal scrolling velocity, or NO_MAX to leave the relative value unconstrained.
verticalMax float: The maximum vertical scrolling velocity, or NO_MAX to leave the relative value unconstrained.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setMinimumVelocity

AutoScrollHelper setMinimumVelocity (float horizontalMin, 
                float verticalMin)

设置绝对最小滚动速度。

如果指定了相对速度和最小速度,则将使用最小速度来限制计算出的相对速度。

Parameters
horizontalMin float: The minimum horizontal scrolling velocity, or NO_MIN to leave the relative value unconstrained.
verticalMin float: The minimum vertical scrolling velocity, or NO_MIN to leave the relative value unconstrained.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setRampDownDuration

AutoScrollHelper setRampDownDuration (int durationMillis)

设置取消激活自动滚动后需要减速至停止的时间量。

指定大于零的持续时间可防止速度突然跳跃。

Parameters
durationMillis int: The ramp-down duration in milliseconds.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setRampUpDuration

AutoScrollHelper setRampUpDuration (int durationMillis)

设置激活自动滚动后达到当前触摸位置所需的目标速度的时间量。

指定大于零的持续时间可防止速度突然跳跃。

Parameters
durationMillis int: The ramp-up duration in milliseconds.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setRelativeEdges

AutoScrollHelper setRelativeEdges (float horizontal, 
                float vertical)

设置相对于主机视图尺寸的激活边缘大小。

如果指定了相对边缘和最大边缘,则将使用最大边缘来约束计算的相对边缘大小。

Parameters
horizontal float: The horizontal edge size as a fraction of the host view width, or RELATIVE_UNSPECIFIED to always use the maximum value.
vertical float: The vertical edge size as a fraction of the host view height, or RELATIVE_UNSPECIFIED to always use the maximum value.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

setRelativeVelocity

AutoScrollHelper setRelativeVelocity (float horizontal, 
                float vertical)

设置目标滚动速度相对于主机视图的尺寸。

如果指定了相对速度和最大速度,则将使用最大速度来限制计算出的相对速度。

Parameters
horizontal float: The target horizontal velocity as a fraction of the host view width per second, or RELATIVE_UNSPECIFIED to ignore.
vertical float: The target vertical velocity as a fraction of the host view height per second, or RELATIVE_UNSPECIFIED to ignore.
Returns
AutoScrollHelper The scroll helper, which may used to chain setter calls.

Hooray!