Я работаю над транзакцией фрагмента, и backstack выглядит следующим образом:
...fragA =>(push)=> fragB =>(replace)=> fragC =>(replace)=> fragD
Я хотел бы вернуться к fragA после фрагмента
fragD =>(button click)
Но это не так работает на меня. Следующий код должен заменить или фрагмент pu sh.
fun pushFragmentTag(activity: FragmentActivity, fragment: Fragment, data: Bundle? = null, tag: String? = null) {
showFragment(activity, fragment, true, data, tag, false, null)
}
fun replaceFragment(activity: FragmentActivity, fragment: Fragment, data: Bundle? = null) {
showFragment(activity, fragment, false, data, null, false, null)
}
fun showFragment(activity: FragmentActivity?, fragment: Fragment, isPushInsteadOfReplace: Boolean, data: Bundle? = null, tag: String? = null, isShowAnimation: Boolean = false, shareElementView: View? = null) {
if (activity == null) {
return
}
if (data != null) {
fragment.arguments = data
}
val fragmentTransaction = activity.supportFragmentManager.beginTransaction()
if (isShowAnimation) {
// fragmentTransaction.setCustomAnimations(R.anim.slide_in_up,
// R.anim.slide_out_up);
}
if ( shareElementView != null) {
fragmentTransaction.addSharedElement(shareElementView, ViewCompat.getTransitionName(shareElementView)!!)
}
fragmentTransaction.replace(R.id.container, fragment, tag)
if (isPushInsteadOfReplace) {
fragmentTransaction.addToBackStack(tag)
}
fragmentTransaction.commit()
}
Помогите мне быстро, пожалуйста.