Fragment Shared Element transition

#1

Bonjour à tous,

Je n’arrive pas a faire excactement ce que je veux avec les transitions à l’initialisation de mes fragments:

 val fragmentTransaction = fragmentManager.beginTransaction()
    val fragments = fragmentManager.fragments
    if (fragments.isNotEmpty())
        for (oldFragment in fragments)
            if (oldFragment.isAdded && (!second || oldFragment.tag?.substring(0, userId.length)!!.contains(fragmentTag)))
                fragmentTransaction.hide(oldFragment)

    //create or show
    var fragment = fragmentManager.findFragmentByTag(fragmentTag + userId) as? F_Base

    if (fragment == null || mKillFrags.contains(fragmentTag) || killFragment) {
        if (fragment != null)
            fragmentTransaction.remove(fragment)

        fragment = createFragmentByTag(fragmentTag, bundle)

        if (fragment == null) {
            UIUtils.broadcastMessage(R.string.error)

            return false
        }

        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            fragment.sharedElementEnterTransition = DetailsTransition()
            fragment.sharedElementReturnTransition = null
            fragment.enterTransition = Fade()
            fragment.exitTransition = null
        }

        //todo test animation
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP && sharedView.isNotEmpty()) {
            for (view in sharedView)
                fragmentTransaction.addSharedElement(view, view.transitionName.substring(0, view.transitionName.lastIndexOf("_")))
            fragmentTransaction.replace(content.id, fragment, fragmentTag)
        } else
        fragmentTransaction.add(content.id, fragment, fragmentTag + userId)
    } else {
        fragmentTransaction.show(fragment)
    }
    fragmentTransaction.commitAllowingStateLoss()

Dans ce cas les transitions fonctionne car l’initialisation des fragments passent par fragmentTransaction.replace() mais je n’ai pas envie de détruire mon fragment courant pour autant. Sauf que si je laisse que fragmentTransaction.add() ma transition n’est pas prise en compte.

Avez vous une solution ?