5

我在这样的代码中手动设置了一个新的转换:

intro_motion_layout.setTransition(R.id.middle, R.id.end)

有没有办法我也可以这样设置持续时间?

ConstraintSets在 XML 中定义了多个,当第一次转换完成时,我使用onTransitionCompleted. Transition我的 XML 中有一个,它在那里正确使用了持续时间,但是Transitions我在代码中设置的以下内容发生得非常快,我找不到改变它们的持续时间的方法。

4

2 回答 2

6
intro_motion_layout.setTransition(R.id.middle, R.id.end)
intro_motion_layout.setTransitionDuration(1000)
intro_motion_layout.transitionToEnd()

为我工作

于 2019-06-20T07:44:14.087 回答
-1

如果你在你的 xml 上定义你的转换,那么你设置你的开始/结束 id,它将从 xml 中获取信息

<Transition
    app:constraintSetStart="@id/bottom_sheet_closed"
    app:constraintSetEnd="@id/bottom_sheet_open"
    app:duration="1550"
    app:interpolator="easeIn">

    <OnSwipe
        app:dragDirection="dragUp"
        app:moveWhenScrollAtTop="true"
        app:touchAnchorId="@id/divider"
        app:touchAnchorSide="top" />

</Transition>

然后以编程方式您可以执行以下操作:

root.motion_layout.setTransition(R.id.bottom_sheet_closed, R.id.bottom_sheet_open)
root.motion_layout.transitionToEnd()

一切都会奏效

于 2019-02-04T18:21:49.583 回答