Android 如何检查导航目的地是否在NavController后台堆栈中?

Android 如何检查导航目的地是否在NavController后台堆栈中?,android,android-jetpack,android-architecture-navigation,android-jetpack-navigation,Android,Android Jetpack,Android Architecture Navigation,Android Jetpack Navigation,我要寻找的是我的片段是否已经在后堆栈中 例如,我导航到片段A到片段B。稍后,我导航到片段B到片段C。现在,我想签入片段C,在后堆栈中是否有可用的片段A。如果是,我想弹出所有片段到片段A,否则我想添加新片段A 请确保我想检查片段C中片段A的可用性 运气好吗 提前谢谢 我要找的是我的碎片是否已经在 是否返回堆栈 有一种方法可以使用NavController 试试看{ val back:NavBackStackEntry=controller.getBackStackEntry(R.id.nav_a)

我要寻找的是我的片段是否已经在后堆栈中

例如,我导航到片段A到片段B。稍后,我导航到片段B到片段C。现在,我想签入片段C,在后堆栈中是否有可用的片段A。如果是,我想弹出所有片段到片段A,否则我想添加新片段A

请确保我想检查片段C中片段A的可用性

运气好吗

提前谢谢

我要找的是我的碎片是否已经在 是否返回堆栈

有一种方法可以使用
NavController

试试看{
val back:NavBackStackEntry=controller.getBackStackEntry(R.id.nav_a)
Log.d(“在堆栈中”,back.destination.label.toString())
}捕获(例如:IllegalArgumentException){
Log.d(“在后台堆栈中”,“无条目”)
}
使用
NavController.getBackStackEntry(…)
&
destinationId
您可以很容易地知道片段是否已经在后堆栈中。但是使用这种方法时要小心。因为如果在后堆栈中找不到
destinationId
,该方法将抛出一个
IllegalArgumentException

请确保我想检查片段C中片段A的可用性


你可以在任何地方查看。您只需要参考
NavController

我不认为导航AAC是为该用例设计的,但是您可以潜在地使用
fragmentManager.getFragments()
并遍历当前添加的片段。