问题标签 [android-navigation-graph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
607 浏览

android - Android导航组件导航到上一个片段

我正在使用导航组件来浏览我的应用程序中的页面。

我有一个 ProfileFragment,用户可能会从不同的片段(如 HomeFragment、ArticleFragment 和...)导航到这个片段。

在我的 ProfileFragment 中,我应该如何知道在用户打开 Profile 之前将其导航到上一页的位置。当用户按下后退按钮时,我应该如何检测正确的操作。

在我的片段工具栏中,我也有一个箭头(ImageButton)用于导航到上一页。我应该如何在它的 onClickListener 中处理它?

在这里你可以看到我的navigation.xml的图表

0 投票
1 回答
105 浏览

java - 导航到上一个片段并销毁当前片段

我已经使用导航图实现了许多片段。考虑我有 A-> B-> C-> D 其中 A、B、C、D 是按实现顺序排列的片段。现在我在片段 D 上,我想通过单击 D 中的按钮移动到片段 C。我该怎么做?此外,当我到达片段 C 并按下后退按钮时,它应该将我带到片段 B。我想实现到前一个片段的导航并销毁当前片段。即从 D 移动到 C 并摧毁 D(不希望它按下后退按钮)。

0 投票
0 回答
562 浏览

android - 使用 android 导航 safeArgs 时的许多参数

我在 android 中创建导航图,并为目的地提供 args,但是当我调用该函数时,它说的参数太多。

  • 已经在 build.gradle (app) 上设置apply plugin: 'androidx.navigation.safeargs'

  • 已经在 build.gradle (.) dependecies { classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha05" }

  • 这是我的导航来源

  • 这是我导航的目的地
  • 这是我的导航源的 kotlin 代码

当我在未使用的 gameFinished 函数中调用它时,GameFragmentDirections.actionGameFragmentDestinationToScoreFragment(score) 它对很多参数说,知道如何解决吗?

0 投票
0 回答
60 浏览

android - 单击导航图的后退按钮时如何显示吐司

在片段中,每当我单击导航图中提供的后退按钮时,应用程序就会崩溃。

我真正想要实现的是显示一个对话框,它会说是,然后将移动到上一个片段,如果它说不,那么留在当前片段上。但是现在我正试图显示也不起作用的吐司。请帮忙

我用来处理这个后退按钮的代码是:

错误

0 投票
3 回答
3094 浏览

android - 通过 navGraphViewModels 创建 java.lang.IllegalArgumentException: 没有 ID 的目的地在 NavController 的后台堆栈上

当发生配置更改并因此重新创建我的 Activity 和 Fragment 时,我的导航 Graph 范围内的 ViewModel 不可用,而 Fragments 已经被再次创建。
似乎在 navGraph 之前重新创建了 Fragment。

我正在使用此代码从我的 Fragment 初始化我的 navGraph 范围 ViewModel:

如果我尝试myViewModel在 FragmentsonViewCreated功能中使用,我会IllegalArgumentException在配置更改后得到一个。例外:

我该如何处理?

我已经检查过我的 ID 没有在其他任何地方使用。

编辑1:

这是我的 activity_main.xml

这是我的 main_nav_graph.xml:

0 投票
2 回答
56 浏览

java - 使用导航图的 Onbackpress

我有5个片段如下:

在此处输入图像描述

但是我想当我在第 5 个片段上时,当我按下返回按钮时,它会返回到第 2 个片段。那么我在使用导航图时该怎么做

0 投票
1 回答
1586 浏览

android - 使用 NavController 时如何返回到上一个片段?

我正在使用导航图在 Android 上导航 Fragments。目前,我可以从一个片段转到另一个片段并在后按时返回。

现在我需要返回 OnClickListener 中的前一个 Fragment,该 Fragment 嵌入在托管 Fragment 的 Activity 中托管的 FloatingActionButton 中,而不是后按。

目前,以下代码将我一直带到开始片段:

我也尝试过 getActivity().onBackPressed();,这也让我回到了开始的片段。

怎么回到之前的Fragment?我正在尝试按照本指南将 数据传递到起始目的地,以将 Bundle 返回到起始目的地,但它忽略了如何返回起始目的地。

我还考虑过创建另一个动作来返回开始目的地,但是后退按钮会返回到错误的 Fragment。有没有办法阻止它?

0 投票
1 回答
75 浏览

android - 使用 NavController 时,如何将数据从目标 Fragment 的 FloatingActionButton 的 OnClickListener 传递到起始 Fragment?

我正在尝试在使用 NavController 时将数据从目标 Fragment 的 FloatingActionButton 的 OnClickListener 传递到起始 Fragment。FloatingActionButton 位于托管所有片段的活动中。

目前,我可以像这样从 FloatingActionButton 的 OnClickListener 返回上一个 Fragment:

不过,我想将该 Bundle 发送到起始片段。此处的文档,将数据传递到起始目的地,例如设置新图形并添加捆绑包。不过,这会破坏后台堆栈。即使我这样做:

这让我回到了开始片段。我该如何处理?

我是否应该从目标开始执行一个动作并传递另一个值,然后两次弹出回栈?

0 投票
2 回答
1470 浏览

android - 尝试获取 NavController 时出现 NullPointerException

我不明白错误的原因是什么java.lang.NullPointerException: null cannot be cast to non-null type androidx.navigation.fragment.NavHostFragment

这是我的主机片段:

我想通过单击 textView 导航到 SecondFragment。然后回来。

和导航图 .xml 文件:

导航图的最终形式如下: 在此处输入图像描述

0 投票
1 回答
179 浏览

android - 导航组件:如何在每个片段中设置带有工具栏的抽屉

我正在使用导航组件,并希望将抽屉布局与每个片段中的工具栏连接起来,而不是活动。

我尝试了这个在 onViewCreated() 上调用的答案,但是从活动中引用的任何视图都是空的。我猜这是因为片段在从活动的 onCreate 方法返回之前在布局中膨胀。

我使用此扩展函数将抽屉与片段的工具栏连接起来,我尝试从 onCreateView() 和 onViewCreated() 调用它,但没有工作,并且活动的抽屉布局始终为空。我只在从 onStart() 调用它时才工作,但我认为这不是正确的方法:

调用此函数的正确位置是什么?