如何在Android MotionLayoutMotionScene中无限运行动画defind?

问题描述 投票:0回答:1

我看了谷歌的这个文档。用MotionLayout管理运动和部件动画。我也多看了一些文档,如 Android Studio 4.0中的运动编辑器入门

问题是他们都说到当我们点击ViewButton时如何启动动画。我想模拟加载动画,但我想在显示视图时自动启动动画。

我意识到,我能够使用下面的代码来运行动画。然而,问题是。transitionToEnd() 运行一次动画。

所以,我的问题是:

  1. 如何运行动画并将其循环播放?(要让它永远存在,直到我停止它。)

  2. 有没有可能从startToEnd开始运行动画,然后endToStart,用这种方式循环播放动画?

private fun displayDamLoadingAnimation() {
        val view = layoutInflater.inflate(R.layout.viewgroup_dam_loading, binding.flDamContainer)
        view.motionContainer.transitionToEnd()
    }
android android-animation android-motionlayout android-motionscene
1个回答
0
投票

这可能是对用户的手机不好,但你可以做到这一点,一种方法是创建两个过渡。

<Transition
    motion:constraintSetEnd="@+id/end"
    motion:constraintSetStart="@+id/start"
    motion:autoTransition="animateToEnd"
    motion:duration="1000">

<Transition
    motion:constraintSetEnd="@+id/end"
    motion:constraintSetStart="@+id/start"
    motion:autoTransition="animateToStart"
    motion:duration="1000">

但如果你想让它循环,而不是来回走动

<Transition
    motion:constraintSetEnd="@+id/end"
    motion:constraintSetStart="@+id/start"
    motion:autoTransition="animateToEnd"
    motion:duration="1000">
<Transition
    motion:constraintSetEnd="@+id/end"
    motion:constraintSetStart="@+id/start"
    motion:autoTransition="jumpToStart"
    />
© www.soinside.com 2019 - 2024. All rights reserved.