Android导航popBackStack

ale*_*hka 6 android android-fragments android-jetpack

我尝试使用Android导航组件,但向后堆栈有问题。

我有片段A,B。我写道:

Navigation.findNavController(view).navigate(R.id.a_to_b)
Run Code Online (Sandbox Code Playgroud)

没关系。但是,如果我想返回A,请致电:

Navigation.findNavController(view).popBackStack();
Run Code Online (Sandbox Code Playgroud)

然后在片段B中将以状态调用onViewStateRestored 为什么?

我想在导航到片段A时保持状态。

Dee*_*put 14

尝试这个

val controller = Navigation.findNavController(view)
controller.popBackStack(R.id.id_of_fragment_which_you_want_to_skip, true)
Run Code Online (Sandbox Code Playgroud)

  • 它将把控制器的返回堆栈弹出到特定的目的地。对于是否也应该弹出给定的目的地,则为 true。如果为 false,则不会弹出,并且将弹出当前 id 和给定 id 之间的其他目的地。 (2认同)