出于调试目的,我需要知道哪些Fragment
(我需要像MyCoolFragment
这样的类名)位于堆栈上,以及它们在堆栈上的排列顺序。使用Navigation component时该怎么做?
我希望有这样的东西:
findNavController().backStack.forEach {
// print it.toString()
}
但是当我尝试使用它时,Android Studio会告诉我
那么,我如何看待后排堆里的东西呢?如果有问题,我目前正在与2.3.0-alpha04
合作。
答案 0 :(得分:1)
在运行时不可用。仅当将TestNavHostController
类用作navigation-testing
工件的一部分时,才有可能将其作为测试的一部分来验证回栈。
答案 1 :(得分:1)
出于调试目的,您可以忽略 lint 错误并在返回堆栈中列出非 NavGraph 目标。
val breadcrumb = navController
.backStack
.map {
it.destination
}
.filterNot {
it is NavGraph
}
.joinToString(" > ") {
it.displayName.split('/')[1]
}
// e.g. first_fragment > second_fragment > third_fragment