Вы захотите создать минимальный воспроизводимый пример . Вот пример этого:
val x = PropertyValuesHolder.ofFloat(View.SCALE_X, 0f, 2f)
val y = PropertyValuesHolder.ofFloat(View.SCALE_Y, 0f, 2f)
val grow = ObjectAnimator.ofPropertyValuesHolder(imageview, x, y).apply {
duration = 5000
}
imageview.setOnClickListener{
grow.start()
}
imageview.setOnLongClickListener{
grow.start()
return@setOnLongClickListener true
}
Обычно AnimatorSet предназначен для одновременного запуска нескольких анимаций, для анимации в одном масштабе достаточно просто вызвать .start () для scaleMid2.
И OnClick, и OnLongClick создали одну и ту же анимацию, что заставляет меня поверить, что ваша проблема либо в
- в операторе if
- .isFocusableInTouchMode = true line
- что-то еще в коде, не представленном в вашем вопросе
Поскольку у меня есть минимальный воспроизводимый минимальный код, я могу изменить код на этот
imageview.setOnLongClickListener{
imageview.isFocusableInTouchMode = true
grow.start()
return@setOnLongClickListener true
}
и обнаружить, что OnLongClickListener по-прежнему работает нормально (демонстрируя, по крайней мере, в моем случае, что isFocusableInTouchMode не нужен).
Тогда я могу только предполагать, что проблема в вашем операторе if или в другом коде, вы можете выполнить предыдущие шаги, чтобы выяснить это. по своему усмотрению.