首页 > 解决方案 > MotionLayout OnSwipe touchRegionId 与 OnClick targetId 冲突

问题描述

我的 MotionLayout 中有这个过渡。

<Transition
    android:id="@+id/transition_validate"
    motion:constraintSetEnd="@id/endRight"
    motion:constraintSetStart="@id/start"
    motion:duration="400"
    motion:motionInterpolator="easeOut">
  <OnClick
      motion:clickAction="transitionToEnd"
      motion:targetId="@id/trueButton" />
  <OnSwipe
      motion:dragDirection="dragRight"
      motion:touchAnchorId="@id/card"
      motion:touchRegionId="@id/card"
      motion:touchAnchorSide="right" />

中间的矩形是带有cardid 的 cardView。屏幕左右按钮为trueButton/falseButton

我的问题是,在我添加motion:touchRegionId="@id/card"到 onSwipe 之后,我不能再点击1,即trueButton上面的部分是card启动动画(它实际上在附加的屏幕上是 false 而不是 true 但你明白了),我必须点击 3 即,这部分trueButton不在卡片上方。

在此处输入图像描述

你见过这样的事情吗?你知道我怎么能限制 onSwipecard触摸但点击按钮启动动画?

谢谢

标签: androidandroid-motionlayout

解决方案


推荐阅读