Este es mi código de Kotlin para la animación de transición de actividad

    val p1 = Pair.create(imageViewhospitals, "hospitals")
    val p2 = Pair.create(textViewhospitals, "title")

    val options = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                        ActivityOptions.makeSceneTransitionAnimation(this, p1, p2)
                    } else {
                        TODO("VERSION.SDK_INT < LOLLIPOP")
                    }
startActivity(Intent(this,SplashActivity::class.java),options.toBundle())

Recibo un error / advertencia como

ninguna de las siguientes funciones se puede invocar con los argumentos proporcionados

En ActivityOptions.makeSceneTransitionAnimation

10
Kishan Solanki 24 feb. 2018 a las 15:48

5 respuestas

La mejor respuesta

Finalmente he resuelto este problema cambiando de

val p1 = Pair.create(imageViewhospitals, "hospitals")
val p2 = Pair.create(textViewhospitals, "title")

Para

val p1 = Pair.create<View, String>(imageViewhospitals, "hospitals")
val p2 = Pair.create<View, String>(textViewhospitals, "title")
21
Kishan Solanki 24 feb. 2018 a las 13:54

Importar esto:

import android.util.Pair as UtilPair

Y luego hacer

val pair1 = UtilPair.create<View,String>(yourView,"myTransition")
val pair2 = UtilPair.create<View,String>(view.package_name,"actNameTransition")
val options = ActivityOptions.makeSceneTransitionAnimation(this,
                pair1,
                pair2)
2
Asim 9 ago. 2018 a las 13:59

Aunque estoy usando Kotlin, ¡tuve que especificar el tipo de par redundante para que se ejecute el código! así que solo agrega estos: <View, String>

Final:

    val options = ActivityOptions.makeSceneTransitionAnimation(this,
        Pair.create<View, String>(viewHolder.imageView, getString(R.string.shared_animation_imageview)),
        Pair.create<View, String>(viewHolder.tvTitle, getString(R.string.shared_animation_title)))

    startActivity(intent, options.toBundle())
0
SilverTech 19 mar. 2020 a las 21:12
val imgAnim = Pair.create<View?, String?>(galleryImg, "targetImage")
val textAnim = Pair.create<View?, String?>(textTitle, "targettext")
val options = ActivityOptionsCompat.makeSceneTransitionAnimation( activity, imgAnim, textAnim)

Esto funciona para mí usando ActivityOptionsCompat en lugar de usar ActivityOptions

4
Peter Fam 30 oct. 2018 a las 21:32

Importar esto

import androidx.core.util.Pair
1
Razzy.Muhammad 20 abr. 2019 a las 08:56