问题标签 [navigation-architecture]

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 回答
995 浏览

android - Android:导航组件中动作ID和片段ID之间的区别

有个问题困扰了我很久

在导航组件中,当使用 .navigate(int resId) 时,传递动作 ID 和片段 ID 有何不同?

例子:

在上述情况下,如果

1) 使用 .navigate(R.id.action_login_to_emailLoginFragment);

2) 使用 .navigate(R.id.emailLoginFragment);

而且我还有一个查询,我知道 .navigate(int resId) 将替换片段,在这种情况下如何保留前一个片段中的视图状态?

0 投票
1 回答
194 浏览

android - onDestory,onDetach 在打开片段时调用

当我注意到这个问题时,我正在开发一个代码变得相当大的应用程序,所以我制作了一个测试应用程序,其中包含一个底部导航栏,其中包含主要活动和三个片段(F1、F2、F3)并使用导航组件进行设置。我记录了第一个片段的生命周期事件,如下所示,这就是我得到的:

从 f1 导航到 f2 时,logcat:

使用导航栏从 f2 导航回 f1 时:

有人可以解释一下这种行为吗?应用程序正常工作,片段可见且功能正常,那么为什么要调用 onDestory/onDetach?可能是错误还是什么?我在这两个项目中都有它,它们之间的共同点是我如何在主要活动中设置底部应用程序栏,这是正常的方式,但无论如何我都会发布它:

编辑: 上面测试的片段一是起始目的地,记录片段二一切似乎正常,只有当我分配它(片段2)时,起始目的地片段一按预期运行,片段二显示奇怪的行为。我认为这个问题专门针对起始目标片段。

0 投票
1 回答
56 浏览

android - 如何在recyclerView项目中调用navigation.navigate

我在片段中有一个 recyclerView,当我单击一个项目时,我想导航到下一个片段。第一次单击时,没关系,但是在返回此片段并再次单击同一项目后,我的应用程序崩溃了。谁能告诉我如何在 recyclerView 项目中调用 navigation.navigate ?

0 投票
1 回答
6758 浏览

android - 导航组件参数默认值

在导航组件中,从第一个片段向第二个片段发送参数时,默认值不会从导航图中获取。

这是我的代码:

导航图.xml

第一个片段:

第二片段:

在这里,在第二个片段中获取默认值时,我得到空指针异常

我的问题是,如何获取使用设置的参数值navigation_graph.xml?重新构建项目时,导航图会自动生成 getter。是否有任何体系结构可以使用默认值绑定自动生成的设置器?

0 投票
1 回答
265 浏览

android - 如何在导航架构中导航任何目的地以执行抽屉标题的操作

任何人都请解释一下,如何在导航架构中为抽屉的标题布局定义动作。

快照

现在,我需要设置抽屉标题的点击,并将其设置为:

0 投票
3 回答
1751 浏览

android - 使用导航架构组件时在活动和片段之间进行通信

当片段中发生某些事情时,我想让主机 Activity 知道。传统上,我会有一个带有 Fragment 可以调用的回调的接口,但现在我们使用导航架构组件。

有没有办法将对主机活动的引用传递给片段,或者我将如何解决“活动和片段之间的通信”情况?

谢谢!

0 投票
1 回答
334 浏览

android - Android 导航组件“全局操作”问题

在某些项目中,我们使用导航架构组件,在导航图中,我们添加了具有全局操作的片段,但问题是当快速单击按钮多次后导航到片段-片段打开多次。

我有一些选择来解决这个问题:

  1. /li>
  2. 在全局动作上使用app:launchSingleTop="true",但我们仍然看到多个Fragments是如何打开的(这个解决方案只解决了 popBackStack 问题)

  3. 使用自定义片段导航器,例如,我们将自定义属性“mustBeOnce”添加到目标,并且在覆盖的方法中navigate(),我们将检查该目标是否已经在我们的后台堆栈中。

谁能想到其他解决方案?...

0 投票
0 回答
490 浏览

android - 使用导航架构向上导航而不重新加载片段

单击后退按钮时,我想转到上一个片段目标。我使用 viewpager 为底部导航页面创建了不同的片段。这是我目前用于 navHost 活动的代码

这是 BaseFragment 中的代码

当我从一个片段返回到前一个片段时,我不想再次重新加载它,我希望它保持原来的状态。(例如:在 recyclerview 项目中使用相同的数据及其确切的滚动位置)任何帮助将不胜感激。

0 投票
2 回答
1537 浏览

android - 使用 NavDeepLinkBuilder 构建片段回栈

我有一个单一的活动应用程序,具有三个片段,A,B,C。在正常的应用程序流程中,片段按顺序打开:A->B->CI 有一个前台服务,带有一个通知,单击时应该打开片段C. 我使用导航架构组件,并将目的地作为深度链接添加到通知中:

片段回栈未构建。当我从片段 C 导航回来时,我立即到达片段 A,而不是 B。根据导航原则,后台堆栈应该是自然的,但我似乎无法实现这一点。我在这里想念什么?谢谢你。

0 投票
3 回答
868 浏览

android - 导航架构组件 - OnBackPressed() - Android

我在 Android 导航架构的片段中取得了进展。

当我在最后一个屏幕上按下键或在屏幕上放置一个按钮并将按钮功能设置为

并点击,我回到了上一个fragment,但是又调用了上一个fragment中的onCreateView()方法。我期待它保持正常行为的状态。

我在哪里做错了?