Навигация в приложении происходит через BottomNavigationView
.
На 1-й позиции у меня есть фрагмент, в котором есть кнопка для перехода к другому фрагменту. Первый раз он загружается и показывает все. Я снова нажимаю на 1-ю позицию в BotttomNavView, и мы возвращаемся к родительскому фрагменту (привязанному к 1-й позиции в BottomNavigationView). Но с этого момента, если я нажму кнопку и открою fragment
, она всегда будет пустой.
Вот как выглядит мое управление фрагментами:
fun navigateTo(
context: Context,
fragment: BaseFragment,
navigatable: Navigatable,
addToBackStack: Boolean
) {
val activity = ContextUtil.getActivityFromContext(context)
val tag = fragment.javaClass.toString()
val fragmentManager = (activity as BaseActivity).supportFragmentManager
val transaction = fragmentManager.beginTransaction()
if (fragmentManager.findFragmentByTag(fragment.javaClass.toString()) == null) {
transaction.add(R.id.container, fragment, tag).hide(fragment)
}
val activeFragment = findVisibleFragment(context)
transaction
.apply {
if (activeFragment != null) {
hide(activeFragment)
}
}
.show(fragment)
.apply {
if (addToBackStack) {
this.addToBackStack(tag)
}
}
.commit()
navigatable.afterScreenTransition(fragment).invoke()
}
Я провел эксперимент и обнаружил, что в моем pager fragment
вызывается onAttach()
, но все представления нулевые, onCreateView()
не вызывается.