установить прослушиватель анимации для animate (), если оно не установлено в null, почему это происходит? - PullRequest
0 голосов
/ 27 декабря 2018

Анимация вызывается при нажатии кнопки:

confirmBtn.setOnClickListener {
        finalWalkthroughViewModel.setConfirmation(true)
        it.hide()
        deliveredView.show()
        validateForm()
    }

Мои функции расширения при просмотре:

fun View.hide(visibility: Int = android.view.View.GONE) {
    this.alpha = 1.0f
    this.animate().alpha(0.0f).setDuration(ANIMATION_TIME)
        .setListener(object : Animator.AnimatorListener {
        override fun onAnimationRepeat(animation: Animator?) {
        }

        override fun onAnimationEnd(animation: Animator?) {
            this@hide.visibility = visibility
        }

        override fun onAnimationCancel(animation: Animator?) {
        }

        override fun onAnimationStart(animation: Animator?) {
        }
    })
}
fun View.show() {
    this.alpha = 0.0f
    this.visibility = View.VISIBLE

    this.animate().alpha(1.0f).setDuration(ANIMATION_TIME).setListener(null)
}

, поэтому, если я удаляю .setListener(null) из show(), слушатель установил ранеев скрытой функции вызывается.Почему это происходит?Включает ли реализация анимации в Android объект-компаньон или класс-одиночка?

...