问题标签 [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 投票
4 回答
11137 浏览

android - 导航组件防止在后按时重新创建片段

我在我的项目中使用 Jetpack 导航组件,其中包含一个活动和一些片段。

我有一个带有从服务器端填充的列表的片段。然后我调用getDataFromServeronViewCreated方法,当用户单击一个项目时,会显示一个新片段。

问题是当我按下后退按钮时,onViewCreated在我的列表片段中再次调用。

那么,我怎样才能防止我的第一个片段再次重新创建呢?我不想要不必要onViewCreated的电话。

0 投票
2 回答
246 浏览

android - 使用 Android 导航图时如何显示 HomeAsUp

我在显示 HomeAsUp 时遇到问题。我认为有一种方法可以将 NavColtroller 与 ActionBar 联系起来。所以我不需要为每个 Fragment 手动调整 Toolbar,主要是在使用包含返回上一屏时。

0 投票
1 回答
2310 浏览

android - 在android导航组件中添加进入动画以开始目的地

我知道如何action在导航图中的标签中添加进入和退出动画。我也知道如何NavOptions在导航时动态添加动画navController

我想知道我们如何StartDestination在导航图中添加输入动画。我可以通过两种方式做到这一点:

  1. 将动画应用到起始目的地的根视图
  2. 使用将被原始目标片段替换的临时起始目标片段。
  3. 将动画应用于容器(FrameLayoutNavHostFragment并动态添加宿主片段

但我想知道是否有为此目的的官方解决方案。

谢谢

0 投票
0 回答
1780 浏览

android - 异常膨胀导航图

我刚刚将 Android Studio 更新到 v3.5,我的项目停止运行,给了我以下异常:

据我了解,Android 引发了这个异常,因为它无法在我的 MainActivity 中膨胀导航图......但自上次运行以来我没有改变任何东西!

MainActivity.java

activity_main.xml

nav_graph.xml

0 投票
7 回答
13736 浏览

android - 异常:视图没有设置 navController

在我使用 navController = Navigation.findNAvController(view) 将其托管在活动中的标记片段中的片段中,应用程序因错误而崩溃:视图没有设置 navController。

这是导航图:

这是活动中的片段标签:

0 投票
3 回答
6040 浏览

android - 使用 navGraphViewModels 访问子 NavHostFragment 的图形范围 ViewModel

我正在使用 Android Jetpack (2.2.0-alpha01) 的导航组件。

我希望使用一个嵌套在我的主 NavHostFragment 内的子 NavHostFragment,它配备了自己的子导航图。请查看下图了解上下文:

在此处输入图像描述

子导航主机在 MainNavHost 堆栈前面的片段中定义如下:

在 CHILD Nav Host Fragment 前面的片段中,我正在尝试使用以下代码获取范围为 R.navigation.child_graph 的 ViewModel:

访问 childGraphScopedViewModel 时,我遇到了崩溃并显示错误消息:

我相信惰性初始化调用by navGraphViewModel()正在寻找 mainGraph 中的导航图。

如何访问子 navHostFragment 范围的 ViewModel?感谢您的时间。

0 投票
1 回答
776 浏览

android - Nav 组件 deeplink 不做条件导航

我正在使用 navcomponent 深层链接选项从通用链接深层链接到我的应用程序屏幕。

第 1 步:在 main_nav_graph 文件中添加 deeplink 参数

第 2 步:添加到我的 mainactivity 的清单文件中

第 3 步:点击短信上的链接以启动深层链接

看过的场景:

在我的应用中 SplashActivity 是 Main Launcher 。但是主要活动是初始化导航图的地方。所以我在 Manifest 中为主要活动添加了 navgraph 标签

主要活动作为单个任务添加。

现在,当我进行深度链接时,我看到:

  1. 我的主要活动恢复了 2 次(看起来像应用启动然后关闭然后再次启动并深层链接到屏幕)

  2. 如果用户未登录,我将进行条件检查以保持导航根视图。但我看到它仍然导航到创建异常场景的深度链接屏幕。

0 投票
1 回答
6584 浏览

android-jetpack - 如何在 Fragment 目标中添加 NavHostFragment?

我的目标是通过复杂的导航架构(我想)以最佳方式理解和使用导航组件。

为了制作全局上下文,我使用了一个包含 5 个项目的主 BottomNavigationBar。对于碎片关联的管理,我使用谷歌给出的示例:https ://github.com/googlesamples/android-architecture-components/tree/master/NavigationAdvancedSample 。

但我的情况比底栏要复杂一些。在底部栏启动的片段之一的目的地之一中,我有另一个 RecyclerView 菜单和一个片段容器,用于在片段之间导航。我把我的主要图表的重要部分放在这里:

以及带有底部栏的 xml 开始此图:

这是与 go 片段(目标)对应的图示例:

关联xml是:

现在,要导航到 go 屏幕,我只需使用

或者

但是当我在 Go 片段上时,我发现使用findNavController()的 navController 仍然是 mainFragment 之一。所以navigate()函数没有找到动作ID。为了解决这个问题,我不得不像这样在 GoFragment 中以编程方式更改 navHost:

然后用于navHostGoFragment!!.navController.navigate(R.id.action_to_firstGoFragment)在新容器中导航但是这样做,我的 firstFragment 被创建了两次(我可以在我的日志中看到它)并且会产生一些问题Cannot add the same observer with different lifecycles,例如(我通过添加来解决这个问题

)但我认为我没有像我应该做的那样做导航部分......

您能否提供任何帮助以使这项工作更有效且稳定?

0 投票
1 回答
876 浏览

android-studio - Android Studio 3.5 中未出现导航图

使用 Android Studio 3.5,我正在尝试创建导航图,但设计视图为空

在此处输入图像描述

我知道这是 3.2 的一个问题,但它在 3.5 中不起作用。

在我正在使用的项目 build.gradle 文件中

在我的应用程序 build.gradle 文件中,我将其列为

更新:

  • 删除所有缓存、库文件等后,在我的 Mac 上重新安装 Android Studio ......仍然没有运气。

  • 尝试创建另一个新项目,我看到显示片段的设计视图。

  • 关于在哪里比较两个项目之间的差异的任何提示?

0 投票
1 回答
410 浏览

android - 使用 BottomNavigation 的 NavController 目的地未知

我在主菜单类中使用 BottomNavigation 在主屏幕中循环浏览片段。奇怪的是我的应用程序崩溃了,因为 NavController 没有在四个片段之一中找到目的地。MainMenuFragment 与 MainMenu(包含片段和 NavHostFragment 的活动)不同。知道为什么会这样吗?

导航图: http ://prntscr.com/pcfufk

活动(MainMenu.java)画面http://prntscr.com/pcgcnv

在 MainMenu.java 中:

MainMenu.java 中的 onCreate:

导航图 xml