Вы должны использовать ChildFragmentManager
Это функция замены фрагмента.
fun replace(fragment: Fragment){
childFragmentManager
.beginTransaction()
.replace(R.id.fragmentContainer, fragment)
.commit()
}
И переопределить метод onBackPressed в большинстве родительских фрагментов.
override fun onBackPressed() {
val pop = childFragmentManager.popBackStackImmediate()
if (!pop){
super.onBackPressed()
}
}
Я написал с kotlin, я надеюсь, вы понимаете. Если вам нужна дополнительная информация, пожалуйста, спросите меня.