首页 > 解决方案 > 不清楚 MotionLayout 参数

问题描述

谁能解释一下 MotionLayout 的 onSwipe 参数touchAnchorIdtouchAnchorSide是做什么的?这是关于 touchAnchorId 的文档所说的

通过滑动移动的视图。

这对我来说没有意义,因为在 MotionLayout 上滑动不会移动单个视图。滑动会在开始约束集和结束约束集之间进行转换。我最初认为touchAnchorId会指定一个用户必须拖动以进行动画的视图,但事实并非如此,MotionLayout 开发团队为此引入了touchRegionId参数。我也不清楚touchAnchorSide应该做什么,因为我在改变它的值时没有看到任何区别。

标签: androidandroid-motionlayout

解决方案


onSwipe 沿着一个方向(dragDirection=)水平(dragRight/Left/StartEnd)或垂直(dragUp/Down)移动进度从0到1

如果我将手指沿屏幕拖动 100 像素,它从 0 到 1 移动了多少?这是大多数其他论点回答的主要问题。没有锚,它使用布局的全长。

但是,如果你正在做一个过度的抽牌。您可以使用 dragScale 进行调整。但是多少钱?拉可能会因约束字体而有所不同。

很多时候,您希望它表现得好像您正在拉视图或视图的一侧。在这种情况下,您需要查看视图 (touchAnchorId) 和视图的一侧 (touchAnchorSide)

有时您想限制滑动操作的区域在这种情况下您可以使用limitBoundsTo。

其余的大部分标志都是关于当你抬起手指时要做什么。在它旨在支持的所有用例中,还有更多微妙之处。


推荐阅读