Как добавить Listener в ObjectAnimator в Kotlin?

Я сделал что-то вроде этого

val animator = ObjectAnimator.ofFloat(view, "translationY", 350f,0f)
    animator.duration = 500
    animator.startDelay=200
    animator.interpolator =AccelerateDecelerateInterpolator()
    animator.start()

Теперь я пытаюсь добавить слушателя к этому адаптеру. Я пробовал это,

animator.addListener(onStart = {view.visibility=View.VISIBLE})

но не работает.


person Sagar Thorat    schedule 03.10.2019    source источник
comment
Что не работает? Вы получаете сообщение об ошибке или анимация не работает?   -  person Giorgos Neokleous    schedule 03.10.2019


Ответы (1)


Хотя ваш вопрос не ясен, поскольку вы не упоминаете, что не работает. Я предполагаю, что ваш слушатель бесполезен.

Вы запускаете аниматор, а затем добавляете его, который, конечно же, никогда не будет вызван.

Измените следующим образом:

val animator = ObjectAnimator.ofFloat(view, "translationY", 350f, 0f)
animator.apply {
    duration = 500
    startDelay = 200
    addListener(onStart = {
        view.visibility = View.VISIBLE
    })
    AccelerateDecelerateInterpolator()
    start()
}
person Giorgos Neokleous    schedule 03.10.2019
comment
Поскольку вы используете apply, не должно ли addListener(...) быть допустимым, а не animator.addListener(...)? - person Taslim Oseni; 19.03.2021
comment
Спасибо @TaslimOseni, я исправил - person Giorgos Neokleous; 19.03.2021