У меня 2 navigation
файла, а в моих Activity
, 2 fragment
с. Одна из навигаций всегда отображается внутри одного из фрагментов, но другую я показываю только тогда, когда мне это нужно.
То, как они рисуются, это всегда показывающий фрагмент внутри относительного расположения, а другой фрагмент находится в том же относительном расположении с visibility
, установленным как gone
. Когда мне нужна вторая навигация, я устанавливаю видимость на visible
, а когда она мне не нужна, я снова устанавливаю на gone
. Визуально это работает хорошо, но я хочу, чтобы sh это когда Мне не нужна вторая навигация, я хочу полностью убить ее и перерисовать в следующий раз, когда она мне понадобится.
Я до сих пор держал NavHostFragment
, используемый для запуска навигации, и когда он мне больше не нужен, звоните popBackStack()
на navController
, но это не так. не работает:
val navHost: NavHostFragment? = null
fun createSecondNav() {
navHostLogin = NavHostFragment.create(R.navigation.navigation_second)
theFragment.visibility = View.VISIBLE
supportFragmentManager.beginTransaction()
.replace(R.id.theFragment, navHostLogin!!)
.commit()
}
fun killSecondNav() {
theFragment.visibility = View.GONE
navHostLogin?.navController?.popBackStack() // returns false
navHostLogin = null
}
Так как я могу полностью убить фрагменты, созданные вторым navHost
?