Я работаю над проектом kotlin и пытаюсь преобразовать метод в java в kotlin. Я получаю эту ошибку
Приведенные аргументы не могут быть вызваны ни одной из следующих функций.
это происходит на ObjectAnimator.ofFloat()
Код ниже
Код
fun animate(holder: RecyclerView.ViewHolder, goesDown: Boolean) { val animat = AnimatorSet() val objectY = ObjectAnimator.ofFloat(holder.itemView, "translationY", if (goesDown) 200 else -200, 0) objectY.setDuration(Kons.Duration.toLong()) val objectX = ObjectAnimator.ofFloat(holder.itemView, "translationX", -50, 50, -30, 30, -20, 20, -5, 5, 0) objectX.setDuration(Kons.Duration.toLong()) animat.playTogether(objectX, objectY) animat.start() }
По-видимому, ошибка вызвана тем, что Котлин, в отличие от Java, не продвигает целые литералы к типам с плавающей запятой . Вы должны записать их как, например, 200f
, и исправить эти две строки:
val objectY = ObjectAnimator.ofFloat(holder.itemView, "translationY", if (goesDown) 200f else -200f, 0f)
val objectX = ObjectAnimator.ofFloat(holder.itemView, "translationX", -50f, 50f, -30f, 30f, -20f, 20f, -5f, 5f, 0f)