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)
方法。 有关ListViewAutoScrollHelper
于ListView
实现,请参阅ListViewAutoScrollHelper
。
随着用户接近激活区域的极端边缘,滚动加速到最大速度。 当使用默认边缘类型EDGE_TYPE_INSIDE_EXTEND
,移动到视图边界之外将以最大速度滚动。
可以配置以下激活属性:
setActivationDelay(int)
. Default value is getTapTimeout()
to avoid conflicting with taps. setEdgeType(int)
. Default value is EDGE_TYPE_INSIDE_EXTEND
. setRelativeEdges(float, float)
. Default value is 20% for both vertical and horizontal edges. setMaximumEdges(float, float)
. Default value is NO_MAX
. scrollTargetBy(int, int)
to apply new scrolling offsets.
可以配置以下滚动属性:
setRampUpDuration(int)
. Default value is 500 milliseconds. setRampDownDuration(int)
. Default value is 500 milliseconds. setRelativeVelocity(float, float)
. Default value is 100% per second for both vertical and horizontal. setMinimumVelocity(float, float)
. When set, scrolling will accelerate to the larger of either this value or the relative target value. Default value is approximately 5 centimeters or 315 dips per second. setMaximumVelocity(float, float)
. Default value is approximately 25 centimeters or 1575 dips per second. Constants |
|
---|---|
int |
EDGE_TYPE_INSIDE 边缘类型,指定从视图边界开始并向内延伸的激活区域。 |
int |
EDGE_TYPE_INSIDE_EXTEND 边缘类型,指定从视图边界开始并向内延伸的激活区域。 |
int |
EDGE_TYPE_OUTSIDE 边缘类型,指定从视图边界开始并向外扩展的激活区域。 |
float |
NO_MAX 恒传递到 |
float |
NO_MIN 常量传递给 |
float |
RELATIVE_UNSPECIFIED 常量传递给 |
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) 设置激活边界类型,其中一个:
|
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
|
int EDGE_TYPE_INSIDE
边缘类型,指定从视图边界开始并向内延伸的激活区域。 移动到视图边界之外将停止滚动。
也可以看看:
常量值:0(0x00000000)
int EDGE_TYPE_INSIDE_EXTEND
边缘类型,指定从视图边界开始并向内延伸的激活区域。 激活开始后,移动到视图范围外将继续滚动。
也可以看看:
常数值:1(0x00000001)
int EDGE_TYPE_OUTSIDE
边缘类型,指定从视图边界开始并向外扩展的激活区域。 在视图边界内移动将停止滚动。
也可以看看:
常量值:2(0x00000002)
float NO_MAX
恒传递到setMaximumEdges(float, float)
, setMaximumVelocity(float, float)
,或setMinimumVelocity(float, float)
。 使用此值可确保始终使用计算的相对值,而不受限于特定的最小值或最大值。
常数值:3.4028235E38
float NO_MIN
常量传递到setMaximumEdges(float, float)
或setMaximumVelocity(float, float)
或setMinimumVelocity(float, float)
。 使用此值可确保始终使用计算的相对值,而不受限于特定的最小值或最大值。
常数值:0.0
float RELATIVE_UNSPECIFIED
常量传递给setRelativeEdges(float, float)
或setRelativeVelocity(float, float)
。 使用此值可确保计算出的相对值被忽略,并始终使用绝对最大值。
常数值:0.0
AutoScrollHelper (View target)
为滚动指定的目标视图创建一个新的帮助器。
由此产生的帮助器可以通过链接setter调用进行配置,并且应该设置为目标视图上的触摸监听器。
默认情况下,辅助程序处于禁用状态,在使用 setEnabled(boolean)
启用触摸事件之前不会对触摸事件做出响应。
Parameters | |
---|---|
target |
View : The view to automatically scroll. |
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. |
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. |
boolean isEnabled ()
Returns | |
---|---|
boolean |
True if this helper is enabled and responding to touch events. |
boolean isExclusive ()
指示滚动助手是否在滚动期间专门处理触摸事件。
Returns | |
---|---|
boolean |
True if exclusive handling of touch events during scrolling is enabled, false otherwise. |
也可以看看:
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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. |