SwipeDismissBehavior
public
class
SwipeDismissBehavior
extends Behavior<V extends View>
java.lang.Object | ||
↳ | androidx.coordinatorlayout.widget.CoordinatorLayout.Behavior<V extends android.view.View> | |
↳ | com.google.android.material.behavior.SwipeDismissBehavior<V extends android.view.View> |
An interaction behavior plugin for child views of CoordinatorLayout
to provide support
for the 'swipe-to-dismiss' gesture.
Summary
Nested classes | |
---|---|
interface |
SwipeDismissBehavior.OnDismissListener
Callback interface used to notify the application that the view has been dismissed. |
Constants | |
---|---|
int |
STATE_DRAGGING
A view is currently being dragged. |
int |
STATE_IDLE
A view is not currently being dragged or animating as a result of a fling/snap. |
int |
STATE_SETTLING
A view is currently settling into place as a result of a fling or predefined non-interactive motion. |
int |
SWIPE_DIRECTION_ANY
Swipe direction which allows swiping in either direction. |
int |
SWIPE_DIRECTION_END_TO_START
Swipe direction that only allows swiping in the direction of end-to-start. |
int |
SWIPE_DIRECTION_START_TO_END
Swipe direction that only allows swiping in the direction of start-to-end. |
Public constructors | |
---|---|
SwipeDismissBehavior()
|
Public methods | |
---|---|
boolean
|
canSwipeDismissView(View view)
Called when the user's input indicates that they want to swipe the given view. |
int
|
getDragState()
Retrieve the current drag state of this behavior. |
SwipeDismissBehavior.OnDismissListener
|
getListener()
|
boolean
|
onInterceptTouchEvent(CoordinatorLayout parent, V child, MotionEvent event)
|
boolean
|
onLayoutChild(CoordinatorLayout parent, V child, int layoutDirection)
|
boolean
|
onTouchEvent(CoordinatorLayout parent, V child, MotionEvent event)
|
void
|
setDragDismissDistance(float distance)
Set the threshold for telling if a view has been dragged enough to be dismissed. |
void
|
setEndAlphaSwipeDistance(float fraction)
The maximum swipe distance for the view's alpha is modified. |
void
|
setListener(SwipeDismissBehavior.OnDismissListener listener)
Set the listener to be used when a dismiss event occurs. |
void
|
setSensitivity(float sensitivity)
Set the sensitivity used for detecting the start of a swipe. |
void
|
setStartAlphaSwipeDistance(float fraction)
The minimum swipe distance before the view's alpha is modified. |
void
|
setSwipeDirection(int direction)
Sets the swipe direction for this behavior. |
Inherited methods | |
---|---|
Constants
STATE_DRAGGING
public static final int STATE_DRAGGING
A view is currently being dragged. The position is currently changing as a result of user input or simulated user input.
Constant Value: 1 (0x00000001)
STATE_IDLE
public static final int STATE_IDLE
A view is not currently being dragged or animating as a result of a fling/snap.
Constant Value: 0 (0x00000000)
STATE_SETTLING
public static final int STATE_SETTLING
A view is currently settling into place as a result of a fling or predefined non-interactive motion.
Constant Value: 2 (0x00000002)
SWIPE_DIRECTION_ANY
public static final int SWIPE_DIRECTION_ANY
Swipe direction which allows swiping in either direction.
Constant Value: 2 (0x00000002)
SWIPE_DIRECTION_END_TO_START
public static final int SWIPE_DIRECTION_END_TO_START
Swipe direction that only allows swiping in the direction of end-to-start. That is right-to-left in LTR or left-to-right in RTL.
Constant Value: 1 (0x00000001)
SWIPE_DIRECTION_START_TO_END
public static final int SWIPE_DIRECTION_START_TO_END
Swipe direction that only allows swiping in the direction of start-to-end. That is left-to-right in LTR, or right-to-left in RTL.
Constant Value: 0 (0x00000000)
Public constructors
SwipeDismissBehavior
public SwipeDismissBehavior ()
Public methods
canSwipeDismissView
public boolean canSwipeDismissView (View view)
Called when the user's input indicates that they want to swipe the given view.
Parameters | |
---|---|
view |
View : View the user is attempting to swipe |
Returns | |
---|---|
boolean |
true if the view can be dismissed via swiping, false otherwise |
getDragState
public int getDragState ()
Retrieve the current drag state of this behavior. This will return one of STATE_IDLE
,
STATE_DRAGGING
or STATE_SETTLING
.
Returns | |
---|---|
int |
The current drag state |
getListener
public SwipeDismissBehavior.OnDismissListener getListener ()
Returns | |
---|---|
SwipeDismissBehavior.OnDismissListener |
onInterceptTouchEvent
public boolean onInterceptTouchEvent (CoordinatorLayout parent, V child, MotionEvent event)
Parameters | |
---|---|
parent |
CoordinatorLayout |
child |
V |
event |
MotionEvent |
Returns | |
---|---|
boolean |
onLayoutChild
public boolean onLayoutChild (CoordinatorLayout parent, V child, int layoutDirection)
Parameters | |
---|---|
parent |
CoordinatorLayout |
child |
V |
layoutDirection |
int |
Returns | |
---|---|
boolean |
onTouchEvent
public boolean onTouchEvent (CoordinatorLayout parent, V child, MotionEvent event)
Parameters | |
---|---|
parent |
CoordinatorLayout |
child |
V |
event |
MotionEvent |
Returns | |
---|---|
boolean |
setDragDismissDistance
public void setDragDismissDistance (float distance)
Set the threshold for telling if a view has been dragged enough to be dismissed.
Parameters | |
---|---|
distance |
float : a ratio of a view's width, values are clamped to 0 >= x <= 1f;
|
setEndAlphaSwipeDistance
public void setEndAlphaSwipeDistance (float fraction)
The maximum swipe distance for the view's alpha is modified.
Parameters | |
---|---|
fraction |
float : the distance as a fraction of the view's width.
|
setListener
public void setListener (SwipeDismissBehavior.OnDismissListener listener)
Set the listener to be used when a dismiss event occurs.
Parameters | |
---|---|
listener |
SwipeDismissBehavior.OnDismissListener : the listener to use.
|
setSensitivity
public void setSensitivity (float sensitivity)
Set the sensitivity used for detecting the start of a swipe. This only takes effect if no touch handling has occurred yet.
Parameters | |
---|---|
sensitivity |
float : Multiplier for how sensitive we should be about detecting the start of a
drag. Larger values are more sensitive. 1.0f is normal.
|
setStartAlphaSwipeDistance
public void setStartAlphaSwipeDistance (float fraction)
The minimum swipe distance before the view's alpha is modified.
Parameters | |
---|---|
fraction |
float : the distance as a fraction of the view's width.
|
setSwipeDirection
public void setSwipeDirection (int direction)
Sets the swipe direction for this behavior.
Parameters | |
---|---|
direction |
int : one of the SWIPE_DIRECTION_START_TO_END , SWIPE_DIRECTION_END_TO_START or SWIPE_DIRECTION_ANY
|
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2022-10-20 UTC.