<OnSwipe>
Stay organized with collections
Save and categorize content based on your preferences.
Specifies the action to perform when the user swipes on the layout. The speed of
the motion sequence and the motion of the targeted view are affected by the
speed and direction of the swipe, subject to the limits you set with optional
parameters.
There can be multiple <OnSwipe>
nodes for a single <Transition>
, with each
<OnSwipe>
specifying a different swipe direction and a different action to
perform when the user performs that swipe.
Syntax
<OnSwipe
motion:touchAnchorId="@id/target_view"
motion:touchAnchorSide="side"
[ motion:dragDirection="direction" ]
[ motion:dragScale="scale" ]
[ motion:maxVelocity="maxVelocity" ]
[ motion:maxAcceleration="maxAcceleration" ]
/>
Attributes
motion:touchAnchorId
- View that is being moved by the swipe.
motion:touchAnchorSide
- Side of the target view that the swipe is anchored to.
MotionLayout
keeps a
constant distance between the anchor and the user's finger. Acceptable values
are "left"
, "right"
, "top"
, and "bottom"
.
motion:dragDirection
- Direction of the user's swipe motion. If this attribute is set, this
<OnSwipe>
only applies to swipes in the specified direction. Acceptable values
are "dragLeft"
, "dragRight"
, "dragUp"
, and "dragDown"
.
motion:dragScale
Controls the distance the view moves relative to the length of the swipe. The
default value is 1, indicating that the view moves as far as the swipe does.
If dragScale
is less than 1, the view moves less than the swipe distance.
For example, a dragScale
of 0.5 means that if the swipe moves 4 cm, the
target view moves 2 cm.
If dragScale
is greater than 1, the view moves farther than the swipe
distance. For example, a dragScale
of 1.5 means that if the swipe moves 4
cm, the target view moves 6 cm.
motion:maxVelocity
Maximum velocity of the target view.
motion:maxAcceleration
Maximum acceleration of the target view.
Contained in
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 2023-02-27 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2023-02-27 UTC."],[],[],null,["# <OnSwipe>\n\nSpecifies the action to perform when the user swipes on the layout. The speed of\nthe motion sequence and the motion of the targeted view are affected by the\nspeed and direction of the swipe, subject to the limits you set with optional\nparameters.\n\nThere can be multiple `\u003cOnSwipe\u003e` nodes for a single `\u003cTransition\u003e`, with each\n`\u003cOnSwipe\u003e` specifying a different swipe direction and a different action to\nperform when the user performs that swipe.\n\nSyntax\n------\n\n```xml\n\u003cOnSwipe\n motion:touchAnchorId=\"@id/target_view\"\n motion:touchAnchorSide=\"side\"\n[ motion:dragDirection=\"direction\" ]\n[ motion:dragScale=\"scale\" ]\n[ motion:maxVelocity=\"maxVelocity\" ]\n[ motion:maxAcceleration=\"maxAcceleration\" ]\n /\u003e\n```\n\nAttributes\n----------\n\n`motion:touchAnchorId`\n: View that is being moved by the swipe.\n\n`motion:touchAnchorSide`\n: Side of the target view that the swipe is anchored to. `MotionLayout` keeps a\n constant distance between the anchor and the user's finger. Acceptable values\n are `\"left\"`, `\"right\"`, `\"top\"`, and `\"bottom\"`.\n\n`motion:dragDirection`\n: Direction of the user's swipe motion. If this attribute is set, this\n `\u003cOnSwipe\u003e` only applies to swipes in the specified direction. Acceptable values\n are `\"dragLeft\"`, `\"dragRight\"`, `\"dragUp\"`, and `\"dragDown\"`.\n\n`motion:dragScale`\n\n: Controls the distance the view moves relative to the length of the swipe. The\n default value is 1, indicating that the view moves as far as the swipe does.\n If `dragScale` is less than 1, the view moves less than the swipe distance.\n For example, a `dragScale` of 0.5 means that if the swipe moves 4 cm, the\n target view moves 2 cm.\n\n If `dragScale` is greater than 1, the view moves farther than the swipe\n distance. For example, a `dragScale` of 1.5 means that if the swipe moves 4\n cm, the target view moves 6 cm.\n\n`motion:maxVelocity`\n\n: Maximum velocity of the target view.\n\n`motion:maxAcceleration`\n\n: Maximum acceleration of the target view.\n\nContained in\n------------\n\n- [`\u003cTransition\u003e`](/training/constraint-layout/motionlayout/ref/transition)"]]