gpt4 book ai didi

android - 弹出到全局操作的图形 startDestination fragment - Android 导航组件

转载 作者:行者123 更新时间:2023-12-03 21:30:54 25 4
gpt4 key购买 nike

我有一个多图导航应用程序,我想使用 global action 在图之间切换在我的根目录 main_graph.xml 中定义

<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_graph"
app:startDestination="@id/loadingFragment">

<include app:graph="@navigation/learn_graph" />

<action
android:id="@+id/action_global_learn_graph"
app:destination="@id/learn_graph"
app:launchSingleTop="true"
/>
</navigation>

由于我试图在图形之间切换,因此在将全局操作导航到目标图形 (explore_graph) 时,我想从源图形 (main_graph) 加载的 fragment 中清除后台堆栈。预期的行为是导航到 startDestination目标图的 fragment 仅在后台堆栈中保留该 fragment 。
对于正常操作(同一图中的操作),我可以使用 popUpTo标志,如何为全局操作获得相同的行为?

最佳答案

经过多次尝试,我找到了解决方案。基本思想是将后台堆栈弹出到“拥有”全局操作的图形。就我而言 main_graph是所有者,所以我做了:

<navigation xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main_graph"
app:startDestination="@id/loadingFragment">

<include app:graph="@navigation/learn_graph" />

<action
android:id="@+id/action_global_learn_graph"
app:destination="@id/learn_graph"
app:popUpTo="@+id/main_graph"
app:launchSingleTop="true" />

</navigation>
此外,您必须设置 app:launchSingleTop标记为 true为了制作 的实例目的 map 在您的后台中独一无二
您还可以包括 app:popUpToInclusive="true"表示 app:popUpTo 中指定的目的地也应该是 已删除 从后面的堆栈。

关于android - 弹出到全局操作的图形 startDestination fragment - Android 导航组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59648041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com