Android 导航组件 popupTo self
Android Navigation Component popupTo self
我正在使用导航组件在我的应用程序中导航。我正在使用树结构并逐个节点导航用户 -> Node == NodeFragment
。但现在我正在努力向后导航到特定节点。
例如:图像导航堆栈看起来像这样 A -> B -> C -> D
当用户想从节点 D
直接导航到节点 B
我想弹出片段 C, D
和直接去 B
?
例如:您可以想象像浏览文件夹结构这样的事情,您可以在其中一次又一次地浏览相同的片段。然后您想返回到不是当前文件夹父文件夹的特定文件夹。
但我不知道如何使用导航组件来实现它。对于导航,我使用的是自我操作。提前致谢。
<fragment
android:id="@+id/nodeFragment"
android:name="com.example.NodeFragment">
<action
android:id="@+id/action_chatbotBuilderChildrenFragment_self2"
app:destination="@id/nodeFragment" />
</fragment>
进入您的导航图,单击 C -> D
上的操作(箭头线),在右侧面板上(确保处于设计模式而不是拆分或代码模式)您将看到 pop up tp
选项,然后选择Fragment B
,就可以了。因此,无论何时您在 Fragment D
并单击 Back
键,应用程序都会导航回 Fragment B
。
所以我找到了一些非常简单的解决方法。似乎在排序的时间段内多次调用 NavController.navigateUp()
就可以了。我不确定这是否是正确的解决方案,但它解决了我的问题。
我也很惊讶,即使我的片段转换在多次调用 NavController.navigateUp()
后也没有中断。
代码示例:
repeat(numberOfPopUps) {
findNavController().navigateUp()
}
我正在使用导航组件在我的应用程序中导航。我正在使用树结构并逐个节点导航用户 -> Node == NodeFragment
。但现在我正在努力向后导航到特定节点。
例如:图像导航堆栈看起来像这样 A -> B -> C -> D
当用户想从节点 D
直接导航到节点 B
我想弹出片段 C, D
和直接去 B
?
例如:您可以想象像浏览文件夹结构这样的事情,您可以在其中一次又一次地浏览相同的片段。然后您想返回到不是当前文件夹父文件夹的特定文件夹。
但我不知道如何使用导航组件来实现它。对于导航,我使用的是自我操作。提前致谢。
<fragment
android:id="@+id/nodeFragment"
android:name="com.example.NodeFragment">
<action
android:id="@+id/action_chatbotBuilderChildrenFragment_self2"
app:destination="@id/nodeFragment" />
</fragment>
进入您的导航图,单击 C -> D
上的操作(箭头线),在右侧面板上(确保处于设计模式而不是拆分或代码模式)您将看到 pop up tp
选项,然后选择Fragment B
,就可以了。因此,无论何时您在 Fragment D
并单击 Back
键,应用程序都会导航回 Fragment B
。
所以我找到了一些非常简单的解决方法。似乎在排序的时间段内多次调用 NavController.navigateUp()
就可以了。我不确定这是否是正确的解决方案,但它解决了我的问题。
我也很惊讶,即使我的片段转换在多次调用 NavController.navigateUp()
后也没有中断。
代码示例:
repeat(numberOfPopUps) {
findNavController().navigateUp()
}