ObjectAnimator.ofFloat不能直接在Kotlin中将Int作为参数

A.N*_*N.T 11 android kotlin

我正在研究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()
}
Run Code Online (Sandbox Code Playgroud)

hot*_*key 29

看起来,错误是由于Kotlin与Java不同,不会将整数文字提升为浮点类型.例如,您必须将它们编写为200f,并修复这两行:

val objectY = ObjectAnimator.ofFloat(holder.itemView, View.TRANSLATION_Y, if (goesDown) 200f else -200f, 0f)
Run Code Online (Sandbox Code Playgroud)

val objectX = ObjectAnimator.ofFloat(holder.itemView, View.TRANSLATION_X, -50f, 50f, -30f, 30f, -20f, 20f, -5f, 5f, 0f)
Run Code Online (Sandbox Code Playgroud)