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 2025-02-10 UTC.