Android 是否可以在MotionLayout中设置结束状态而不使用动画?
我有一些项目被包装在motionLayout和recyclerView中,其中需要将一个项目设置为结束状态,并将其余项目保持在开始状态,无任何动画或闪烁,只需显示即可。 当我试着打电话时Android 是否可以在MotionLayout中设置结束状态而不使用动画?,android,android-recyclerview,android-animation,android-constraintlayout,android-motionlayout,Android,Android Recyclerview,Android Animation,Android Constraintlayout,Android Motionlayout,我有一些项目被包装在motionLayout和recyclerView中,其中需要将一个项目设置为结束状态,并将其余项目保持在开始状态,无任何动画或闪烁,只需显示即可。 当我试着打电话时 transitionToState(endState) 或 动画发生了,但我只需要第一次将元素设置为结束状态。 当用户单击项目时,所有内容都应设置动画。通过执行以下操作,您可以在不设置动画的情况下切换到MotionLayout的结束状态: yourMotionLayout.setTransitionDura
transitionToState(endState)
或
动画发生了,但我只需要第一次将元素设置为结束状态。
当用户单击项目时,所有内容都应设置动画。通过执行以下操作,您可以在不设置动画的情况下切换到MotionLayout的结束状态:
yourMotionLayout.setTransitionDuration(0)
yourMotionLayout.transitionToEnd()
您可以将其包装到扩展函数中,以便于重用:
/**
* Triggers the underlying [MotionLayout] to transition to end state immediately.
*/
fun MotionLayout.jumpToEnd() {
this.setTransitionDuration(0)
this.transitionToEnd()
}
您可以通过编程方式寻求转换:
setProgress(1f)
将在没有动画的情况下转换到结束状态。您是否尝试过setProgress(1.0f)
?
/**
* Triggers the underlying [MotionLayout] to transition to end state immediately.
*/
fun MotionLayout.jumpToEnd() {
this.setTransitionDuration(0)
this.transitionToEnd()
}