надеюсь, что кто-то может мне здесь помочь,
У меня есть два очень простых фрагмента, настроенных в качестве пунктов назначения NavHostFragment, и я перемещаюсь между ними, используя навигацию следующим образом:
findNavController().navigate(R.id.action_fragment1_to_fragment2)
Фрагмент 1 - это динамическое добавление фрагмента к самому себе, используя следующее:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (savedInstanceState == null) {
var fragment = SubFragment()
val fm = requireActivity().supportFragmentManager
val ft = fm
.beginTransaction()
.add(R.id.container, fragment)
.commit()
}
}
Когда я нажимаю для перехода от фрагмента 1 к фрагменту 2, я вижу, что фрагмент 1 проходит через onPaused, onStop и onDestoryView, как и ожидалось. Но я не получаю соответствующих вызовов для субфрагмента. Если я переключаю субфрагмент на статическое добавление через XML, он отражает вызовы жизненного цикла при удалении. Нужно ли вручную запускать жизненный цикл для фрагментов Dynami c, и если да, то как?
Макет фрагмента 1
<androidx.appcompat.widget.AppCompatTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/fragOneHead"
android:text="Fragment One"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<FrameLayout
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/fragOneHead"
android:orientation="vertical" />