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