AndroidX 导航 navigateUp 两次
AndroidX navigation navigateUp twice
我正在使用新的 AndroidX 导航框架。
我有几个片段都链接在导航链中。
片段A --> 片段B --> 片段C
FragmentC 有一个“取消”按钮,可以让我回到 FragmentA。
我应该执行以下操作吗:
在 FragmentC 上调用方法:
Navigation.findNavController(view).navigateUp();
然后在 FragmentB 上监听一些回调并使用一些传递的参数或参数从 FragmentB 触发另一个 navigateUp() 函数
或者是否有一些方法相当于 navigateUpTwice()
您可以在 FragmentB --> FragmentC 的操作中将 pop 设置为 FragmentA,然后当您按下返回时它会转到 Fragment A 而不是 Fragment B
我最后做的是
Navigation.findNavController(view).popBackStack(R.id.fragmant_a,false)
试试这个,对我有用。
findNavController().navigateUp()
findNavController().navigateUp()
在您的 navigation.xml 文件中,在您创建的用于导航到起始片段(在您的情况下为 FragmentA)的操作下,添加以下内容
<action
....
app:popUpTo="@id/fragmentA"
app:popUpToInclusive="false"/>
这将弹出 FragmentA 之前的所有片段并将排除 FragmentA,因为 popUpToInclusive 设置为 false。
我正在使用新的 AndroidX 导航框架。
我有几个片段都链接在导航链中。
片段A --> 片段B --> 片段C
FragmentC 有一个“取消”按钮,可以让我回到 FragmentA。
我应该执行以下操作吗:
在 FragmentC 上调用方法:
Navigation.findNavController(view).navigateUp();
然后在 FragmentB 上监听一些回调并使用一些传递的参数或参数从 FragmentB 触发另一个 navigateUp() 函数
或者是否有一些方法相当于 navigateUpTwice()
您可以在 FragmentB --> FragmentC 的操作中将 pop 设置为 FragmentA,然后当您按下返回时它会转到 Fragment A 而不是 Fragment B
我最后做的是
Navigation.findNavController(view).popBackStack(R.id.fragmant_a,false)
试试这个,对我有用。
findNavController().navigateUp()
findNavController().navigateUp()
在您的 navigation.xml 文件中,在您创建的用于导航到起始片段(在您的情况下为 FragmentA)的操作下,添加以下内容
<action
....
app:popUpTo="@id/fragmentA"
app:popUpToInclusive="false"/>
这将弹出 FragmentA 之前的所有片段并将排除 FragmentA,因为 popUpToInclusive 设置为 false。