【问题标题】:Unclear MotionLayout parameters不清楚 MotionLayout 参数
【发布时间】:2020-11-15 07:36:24
【问题描述】:

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

通过滑动移动的视图。

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

【问题讨论】:

    标签: android android-motionlayout


    【解决方案1】:

    onSwipe 将进度从 0 移到 1 direction(dragDirection=) 水平 (dragRight/Left/StartEnd) 或垂直 (dragUp/Down)

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

    但是,如果您要进行过度抽奖。 您可以使用 dragScale 进行调整。但是多少钱?拉力可能会因约束字体而有所不同。

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

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

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

    【讨论】:

    • 我现在理解了 touchAnchorId 背后的概念。谢谢你。我仍然不知道 touchAnchorSide 有什么意义。表现得好像我正在拉动视图的一侧是什么意思?调整这个参数我看不出有什么区别。
    • 如果视图不改变大小也没关系。如果视图正在改变大小,那么一切都会有所不同。您可以让左侧保持固定而右侧展开。这里我解释一下:youtu.be/8McWIOhh7aA?t=1138
    • @hoford 很棒的视频!!!很长一段时间以来,我一直在努力理解这两个属性。很棒的视觉解释。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    • 2023-02-16
    • 2015-12-07
    • 2018-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多