belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1
AutoScrollHelper
public
abstract
class
AutoScrollHelper
extends Object
implements
View.OnTouchListener
java.lang.Object | |
↳ | android.support.v4.widget.AutoScrollHelper |
Known Direct Subclasses |
AutoScrollHelper is a utility class for adding automatic edge-triggered scrolling to Views.
Note: Implementing classes are responsible for overriding the
scrollTargetBy(int, int)
, canTargetScrollHorizontally(int)
, and
canTargetScrollVertically(int)
methods. See
ListViewAutoScrollHelper
for a ListView
-specific implementation.
Activation
As the user touches closer to the extreme edge of the activation area,
scrolling accelerates up to a maximum velocity. When using the default edge
type, EDGE_TYPE_INSIDE_EXTEND
, moving outside of the view bounds
will scroll at the maximum velocity.
The following activation properties may be configured:
- Delay after entering activation area before auto-scrolling begins, see
setActivationDelay(int)
. Default value isgetTapTimeout()
to avoid conflicting with taps. - Location of activation areas, see
setEdgeType(int)
. Default value isEDGE_TYPE_INSIDE_EXTEND
. - Size of activation areas relative to view size, see
setRelativeEdges(float, float)
. Default value is 20% for both vertical and horizontal edges. - Maximum size used to constrain relative size, see
setMaximumEdges(float, float)
. Default value isNO_MAX
.
Scrolling
scrollTargetBy(int, int)
to apply new scrolling offsets.
The following scrolling properties may be configured:
- Acceleration ramp-up duration, see
setRampUpDuration(int)
. Default value is 500 milliseconds. - Acceleration ramp-down duration, see
setRampDownDuration(int)
. Default value is 500 milliseconds. - Target velocity relative to view size, see
setRelativeVelocity(float, float)
. Default value is 100% per second for both vertical and horizontal. - Minimum velocity used to constrain relative velocity, see
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. - Maximum velocity used to constrain relative velocity, see
setMaximumVelocity(float, float)
. Default value is approximately 25 centimeters or 1575 dips per second.
Summary
Constants | |
---|---|
int |
EDGE_TYPE_INSIDE
Edge type that specifies an activation area starting at the view bounds and extending inward. |
int |
EDGE_TYPE_INSIDE_EXTEND
Edge type that specifies an activation area starting at the view bounds and extending inward. |
int |
EDGE_TYPE_OUTSIDE
Edge type that specifies an activation area starting at the view bounds and extending outward. |
float |
NO_MAX
Constant passed to |
float |
NO_MIN
Constant passed to |
float |
RELATIVE_UNSPECIFIED
Constant passed to |
Public constructors | |
---|---|
AutoScrollHelper(View target)
Creates a new helper for scrolling the specified target view. |
Public methods | |
---|---|
abstract
boolean
|
canTargetScrollHorizontally(int direction)
Override this method to return whether the target view can be scrolled horizontally in a certain direction. |
abstract
boolean
|
canTargetScrollVertically(int direction)
Override this method to return whether the target view can be scrolled vertically in a certain direction. |
boolean
|
isEnabled()
|
boolean
|
isExclusive()
Indicates whether the scroll helper handles touch events exclusively during scrolling. |
boolean
|
onTouch(View v, MotionEvent event)
Handles touch events by activating automatic scrolling, adjusting scroll velocity, or stopping. |
abstract
void
|
scrollTargetBy(int deltaX, int deltaY)
Override this method to scroll the target view by the specified number of pixels. |
AutoScrollHelper
|
setActivationDelay(int delayMillis)
Sets the delay after entering an activation edge before activation of auto-scrolling. |
AutoScrollHelper
|
setEdgeType(int type)
Sets the activation edge type, one of:
|
AutoScrollHelper
|
setEnabled(boolean enabled)
Sets whether the scroll helper is enabled and should respond to touch events. |
AutoScrollHelper
|
setExclusive(boolean exclusive)
Enables or disables exclusive handling of touch events during scrolling. |
AutoScrollHelper
|
setMaximumEdges(float horizontalMax, float verticalMax)
Sets the absolute maximum edge size. |
AutoScrollHelper
|
setMaximumVelocity(float horizontalMax, float verticalMax)
Sets the absolute maximum scrolling velocity. |
AutoScrollHelper
|
setMinimumVelocity(float horizontalMin, float verticalMin)
Sets the absolute minimum scrolling velocity. |
AutoScrollHelper
|
setRampDownDuration(int durationMillis)
Sets the amount of time after de-activation of auto-scrolling that is takes to slow to a stop. |
AutoScrollHelper
|
setRampUpDuration(int durationMillis)
Sets the amount of time after activation of auto-scrolling that is takes to reach target velocity for the current touch position. |
AutoScrollHelper
|
setRelativeEdges(float horizontal, float vertical)
Sets the activation edge size relative to the host view's dimensions. |
AutoScrollHelper
|
setRelativeVelocity(float horizontal, float vertical)
Sets the target scrolling velocity relative to the host view's dimensions. |
Inherited methods | |
---|---|
From
class
java.lang.Object
| |
From
interface
android.view.View.OnTouchListener
|
Constants
EDGE_TYPE_INSIDE
int EDGE_TYPE_INSIDE
Edge type that specifies an activation area starting at the view bounds and extending inward. Moving outside the view bounds will stop scrolling.
See also:
Constant Value: 0 (0x00000000)
EDGE_TYPE_INSIDE_EXTEND
int EDGE_TYPE_INSIDE_EXTEND
Edge type that specifies an activation area starting at the view bounds and extending inward. After activation begins, moving outside the view bounds will continue scrolling.
See also:
Constant Value: 1 (0x00000001)
EDGE_TYPE_OUTSIDE
int EDGE_TYPE_OUTSIDE
Edge type that specifies an activation area starting at the view bounds and extending outward. Moving inside the view bounds will stop scrolling.
See also:
Constant Value: 2 (0x00000002)
NO_MAX
float NO_MAX
Constant passed to setMaximumEdges(float, float)
, setMaximumVelocity(float, float)
,
or setMinimumVelocity(float, float)
. Using this value ensures that the
computed relative value is always used without constraining to a
particular minimum or maximum value.
Constant Value: 3.4028235E38
NO_MIN
float NO_MIN
Constant passed to setMaximumEdges(float, float)
, or
setMaximumVelocity(float, float)
, or setMinimumVelocity(float, float)
. Using this
value ensures that the computed relative value is always used without
constraining to a particular minimum or maximum value.
Constant Value: 0.0
RELATIVE_UNSPECIFIED
float RELATIVE_UNSPECIFIED
Constant passed to setRelativeEdges(float, float)
or
setRelativeVelocity(float, float)
. Using this value ensures that the computed
relative value is ignored and the absolute maximum value is always used.
Constant Value: 0.0
Public constructors
AutoScrollHelper
AutoScrollHelper (View target)
Creates a new helper for scrolling the specified target view.
The resulting helper may be configured by chaining setter calls and should be set as a touch listener on the target view.
By default, the helper is disabled and will not respond to touch events
until it is enabled using setEnabled(boolean)
.
Parameters | |
---|---|
target |
View : The view to automatically scroll.
|
Public methods
canTargetScrollHorizontally
boolean canTargetScrollHorizontally (int direction)
Override this method to return whether the target view can be scrolled horizontally in a certain 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)
Override this method to return whether the target view can be scrolled vertically in a certain 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 ()
Indicates whether the scroll helper handles touch events exclusively during scrolling.
Returns | |
---|---|
boolean |
True if exclusive handling of touch events during scrolling is enabled, false otherwise. |
See also:
onTouch
boolean onTouch (View v, MotionEvent event)
Handles touch events by activating automatic scrolling, adjusting scroll velocity, or stopping.
If isExclusive()
is false, always returns false so that
the host view may handle touch events. Otherwise, returns true when
automatic scrolling is active and false otherwise.
Parameters | |
---|---|
v |
View |
event |
MotionEvent |
Returns | |
---|---|
boolean |
scrollTargetBy
void scrollTargetBy (int deltaX, int deltaY)
Override this method to scroll the target view by the specified number of pixels.
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)
Sets the delay after entering an activation edge before activation of
auto-scrolling. By default, the activation delay is set to
getTapTimeout()
.
Specifying a delay of zero will start auto-scrolling immediately after the touch position enters an activation edge.
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)
Sets the activation edge type, one of:
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)
Sets whether the scroll helper is enabled and should respond to touch events.
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)
Enables or disables exclusive handling of touch events during scrolling. By default, exclusive handling is disabled and the target view receives all touch events.
When enabled, onTouch(View, MotionEvent)
will return true if the helper is
currently scrolling and false otherwise.
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)
Sets the absolute maximum edge size.
If relative edge size is not specified, activation edges will always be the maximum edge size. If both relative and maximum edges are specified, the maximum edge will be used to constrain the calculated relative edge size.
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)
Sets the absolute maximum scrolling velocity.
If relative velocity is not specified, scrolling will always reach the same maximum velocity. If both relative and maximum velocities are specified, the maximum velocity will be used to clamp the calculated relative velocity.
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)
Sets the absolute minimum scrolling velocity.
If both relative and minimum velocities are specified, the minimum velocity will be used to clamp the calculated relative velocity.
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)
Sets the amount of time after de-activation of auto-scrolling that is takes to slow to a stop.
Specifying a duration greater than zero prevents sudden jumps in velocity.
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)
Sets the amount of time after activation of auto-scrolling that is takes to reach target velocity for the current touch position.
Specifying a duration greater than zero prevents sudden jumps in velocity.
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)
Sets the activation edge size relative to the host view's dimensions.
If both relative and maximum edges are specified, the maximum edge will be used to constrain the calculated relative edge size.
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)
Sets the target scrolling velocity relative to the host view's dimensions.
If both relative and maximum velocities are specified, the maximum velocity will be used to clamp the calculated relative velocity.
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. |
Interfaces
Classes
- AutoScrollHelper
- CircularProgressDrawable
- CompoundButtonCompat
- ContentLoadingProgressBar
- CursorAdapter
- DrawerLayout
- DrawerLayout.LayoutParams
- DrawerLayout.SavedState
- DrawerLayout.SimpleDrawerListener
- EdgeEffectCompat
- ExploreByTouchHelper
- ImageViewCompat
- ListPopupWindowCompat
- ListViewAutoScrollHelper
- ListViewCompat
- NestedScrollView
- PopupMenuCompat
- PopupWindowCompat
- ResourceCursorAdapter
- ScrollerCompat
- SimpleCursorAdapter
- SlidingPaneLayout
- SlidingPaneLayout.LayoutParams
- SlidingPaneLayout.SimplePanelSlideListener
- Space
- SwipeRefreshLayout
- TextViewCompat
- ViewDragHelper
- ViewDragHelper.Callback