我用如下代码手动设置新的过渡:
intro_motion_layout.setTransition(R.id.middle, R.id.end)
有没有办法我也可以这样设置持续时间?
我有多个用XML定义的ConstraintSets
,当使用onTransitionCompleted
完成第一个转换时,我在它们之间切换。我的XML中有一个Transition
,并且在那里正确使用了持续时间,但是我在代码中设置的以下Transitions
发生得非常快,我找不到改变其持续时间的方法。
答案 0 :(得分:0)
如果您在xml上定义了Transition,则设置了开始/结束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()
一切都会起作用
答案 1 :(得分:0)
intro_motion_layout.setTransition(R.id.middle, R.id.end)
intro_motion_layout.setTransitionDuration(1000)
intro_motion_layout.transitionToEnd()
为我工作