Как установить разные значения RepeatCount (0 против бесконечного) для разных слоев в Lottie Android?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как установить разные значения RepeatCount (0 против бесконечного) для разных слоев в Lottie Android?

Сообщение Anonymous »

Я работаю со сложной анимацией Lottie в Android (Kotlin), где мне нужно: < /p>
  • Играть в некоторых слоях один раз (repeatcount = 0) < /p>
    < /li>
    /> < /li>
    Динамически видимость управляющего слоя < /p>

    Код: Выделить всё

    private fun updateValues(modelValue: ModelValue) {
    isAnimationComplete = false
    with(binding.viewAnimation) {
    // 1. Full cleanup of previous state
    cancelAnimation()
    removeAllAnimatorListeners()
    removeAllUpdateListeners()
    progress = 0f
    
    // 3. Update dynamic parts
    updateStatus(modelValue) // Shows/hides layers
    
    // 4. Configure initial play
    repeatCount = 0
    repeatMode = LottieDrawable.RESTART
    
    // 5. Use composition listener to ensure proper setup
    addLottieOnCompositionLoadedListener {
    
    addAnimatorListener(object : Animator.AnimatorListener {
    override fun onAnimationStart(animation: Animator) {
    DevLog.d("LottieDebug", "Initial animation started")
    }
    
    override fun onAnimationEnd(animation: Animator) {
    removeAnimatorListener(this)
    
    // 6. Post to main thread with proper sequencing
    post {
    // Update app state
    isAnimationComplete = true
    previousModel = modelValue
    updateStatusesAnotherLayer(modelValue) // Shows/hides layers
    
    cancelAnimation()
    progress = 0f
    repeatCount = LottieDrawable.INFINITE
    repeatMode = LottieDrawable.RESTART
    
    // 9. Start with frame delay
    postOnAnimation {
    playAnimation()
    }
    }
    }
    
    override fun onAnimationCancel(animation: Animator) {}
    override fun onAnimationRepeat(animation: Animator) {}
    })
    
    // Start initial animation
    playAnimation()
    }
    }
    }
    
Как этот слой скрыть/показывать, что я делаю
binding.viewAnimation.addValueCallback(
KeyPath("layer_1"),
LottieProperty.TRANSFORM_OPACITY
) { 0 }

binding.viewAnimation.addValueCallback(
KeyPath("layer_2"),
LottieProperty.TRANSFORM_OPACITY
) { 100 }
< /code>
Проблема:
Infinite Loping (repeatCount = Infinite) не работает для определенных слоев после завершения начальной анимации.>

Подробнее здесь: https://stackoverflow.com/questions/795 ... -layers-in
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»