<OnSwipe>
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
指定使用者滑動版面配置時要執行的動作。無論
動作序列和指定檢視動作的動作會受到
速度和方向,但受到您為選用的限制
參數。
單一 <Transition>
可以有多個 <OnSwipe>
節點,每個節點
<OnSwipe>
會指定不同的滑動方向和要執行的動作
在使用者滑動時執行。
語法
<OnSwipe
motion:touchAnchorId="@id/target_view"
motion:touchAnchorSide="side"
[ motion:dragDirection="direction" ]
[ motion:dragScale="scale" ]
[ motion:maxVelocity="maxVelocity" ]
[ motion:maxAcceleration="maxAcceleration" ]
/>
屬性
motion:touchAnchorId
- 透過滑動手勢移動的檢視畫面。
motion:touchAnchorSide
- 滑動固定在目標檢視畫面的側面。
MotionLayout
會保存
錨點與使用者手指之間的固定距離。可接受的值
包括 "left"
、"right"
、"top"
和 "bottom"
。
motion:dragDirection
- 使用者的滑動動作方向。如果設定此屬性,則為
<OnSwipe>
只適用於指定方向的滑動操作。可接受的值
包括 "dragLeft"
、"dragRight"
、"dragUp"
和 "dragDown"
。
motion:dragScale
控制檢視畫面相對於滑動時間長度的移動距離。
預設值為 1,表示檢視畫面移動至縮放至多的位置。
如果 dragScale
小於 1,檢視畫面移動的距離會小於滑動距離。
舉例來說,如果 dragScale
為 0.5,表示如果滑動移動 4 公分,
目標檢視移動了 2 公分。
如果 dragScale
大於 1,檢視畫面移動的位置會比滑動手勢還遠
距離。舉例來說,如果 dragScale
為 1.5,表示如果滑動動作會將 4 移動 4
公分,目標檢視畫面移動了 6 公分。
motion:maxVelocity
目標檢視畫面的最高速度。
motion:maxAcceleration
目標檢視畫面的加速上限。
包含於
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2025-07-27 (世界標準時間)。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["缺少我需要的資訊","missingTheInformationINeed","thumb-down"],["過於複雜/步驟過多","tooComplicatedTooManySteps","thumb-down"],["過時","outOfDate","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["示例/程式碼問題","samplesCodeIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-07-27 (世界標準時間)。"],[],[],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)"]]