Переход общего элемента фрагмента Android без FragmentTransaction.replace()

#android #fragment-transitions

#Android #фрагмент-переходы

Вопрос:

Я не могу делать именно то, что хочу, с переходами к инициализации моих фрагментов:

  val fragmentTransaction = fragmentManager.beginTransaction()
    val fragments = fragmentManager.fragments
    if (fragments.isNotEmpty())
        for (oldFragment in fragments)
            if (oldFragment.isAdded amp;amp; (!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 amp;amp; 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()
  

В этом случае переходы работают, потому что инициализация фрагментов проходит мимо fragmentTransaction.replace() но я не хочу уничтожать свой текущий фрагмент, за исключением того, что если я уйду, fragmentTransaction.add() мой переход не будет выполнен.

У вас есть решение?