Har*_*tel 5 android android-jetpack android-architecture-navigation android-jetpack-navigation
我正在寻找的是我的片段是否已经在后台堆栈中。
例如,我导航到片段 A 到片段 B。稍后,我导航到片段 B 到片段 C。现在,我想检查片段 C 是否有片段 A 在返回堆栈中可用。如果是,我想弹出片段 A 之前的所有片段,否则我想添加新的片段 A。
请确保我要检查片段 C 中片段 A 的可用性。
有没有运气?
提前致谢。
我正在寻找的是我的片段是否已经在后台堆栈中。
有一种方法可以使用NavController.
try {
val back:NavBackStackEntry = controller.getBackStackEntry(R.id.nav_a)
Log.d("in_back_stack", back.destination.label.toString())
} catch (ex: IllegalArgumentException){
Log.d("in_back_stack","no_entry")
}
Run Code Online (Sandbox Code Playgroud)
使用NavController.getBackStackEntry(...)&destinationId你可以很容易地知道一个片段是否已经在返回堆栈中。但使用这种方法要小心。IllegalArgumentException因为如果destinationId在返回堆栈中找不到该方法,该方法将抛出一个异常。
请确保我要检查片段 C 中片段 A 的可用性。
您可以从任何地方检查。您所需要的只是 的参考NavController。
| 归档时间: |
|
| 查看次数: |
7595 次 |
| 最近记录: |