问题标签 [android-architecture-navigation]
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.
android-architecture-components - Android导航库不打开深层链接
无法打开深层链接 URL。这是我使用的代码
我已使用意图打开深层链接
依赖
android - 导航架构组件 - 启动画面
我想知道如何使用导航架构组件实现启动画面。
直到现在我有这样的东西
用户必须ProfileFragment
第一次设置他的个人资料,并且可以从 编辑他们的个人资料ChatFragment
。
我的问题是我不知道如何SplashFragment
在导航后从堆栈中删除。我看过条件导航,但不太明白。
android - 如何为 Android 导航控制器编写测试
我正在使用当前处于 alpha 阶段的新导航控制器。它工作正常,但我找不到任何文档或示例应用程序来查看测试是如何完成的。谷歌还发布android.arch.navigation:navigation-testing
了用于测试导航的库,但同样没有文档。
任何帮助或建议将不胜感激。
android - Jetpack 导航:操作栏中的标题和后退/向上箭头?
我已经安装了最新的金丝雀版本的 Android Studio,并按照这个(https://developer.android.com/topic/libraries/architecture/navigation/navigation-implementing)指令来实现一个简单的两页导航。基本上 page1 有一个按钮,当它被点击时,应用程序会显示 page2。
它可以工作,但有一个问题......它似乎没有自动对操作栏做任何事情。导航库是否应该在操作栏上自动显示上/后箭头和“标签”属性?还是我应该像以前一样手动完成所有工作?我想在显示 page2 时在操作(工具)栏上显示后退箭头和“详细信息”。
在按钮上单击第 1 页。
主要活动 XML。默认情况下,它是默认的操作栏,我已将其替换为工具栏。没有区别。
导航图 XML。
android - 带有架构组件的多模块导航
所以我在我当前的应用程序中为我的模块设置了这个结构。
我还没有找到任何关于多模块导航的官方文档,但是我找到了这篇文章,所以这就是我的 gradle 文件的样子:
功能 1 - 细节
功能 2 - 细节
特色 3 - 细节
这是我的导航图:
功能 1 - 细节
功能 2 - 细节
特色 3 - 细节
所以一切都适用于这种设置,但这里的问题是要将模块连接到另一个模块,我们必须将另一个功能添加为当前功能的依赖项。就像我的情况一样,功能 1 - 详细信息可以转到功能 2 - 详细信息,反之亦然,这样做给了我在 gradle 中的循环依赖。
还有其他方法可以进行多模块导航吗?我试过使用深层链接,但无济于事。
任何帮助,将不胜感激!谢谢!
android - 将导航架构组件与导航抽屉一起使用
我正在尝试将导航架构组件(NavHostFragment) 与导航抽屉(widget.NavigationView) 一起使用。我收到以下两个错误之一。
1) 多次从抽屉中选择一个项目时可能会发生这种情况:
java.lang.IllegalArgumentException: navigation destination app.myDomain.navdrawertrials:id/action_rootFragment_to_settingsFragment is unknown to this NavController
2) 这发生在我的真实代码库中,该代码库的设置方式与 AFAICT 下面的简化示例相同。为什么不设置当前导航节点?
java.lang.IllegalStateException: no current navigation node
简化代码
主要活动
main_activity.xml
nav_drawer_menu.xml
main_activity_content.xml
nav_graph.xml
root_fragment.xml(其他节点是类似的空片段,只有一个标签)
android - Android架构导航popBackStack抛出IllegalArgumentException“回栈为空”
我有一个使用新导航库的应用程序。我在 NavController 上附加了一个监听器,当我浏览应用程序时,它看起来是这样的:
main_fragment
authentication_subgraph
loading_fragment
set_username_fragment
来电popBackStack(R.id.authentication, true)
loading_fragment
作为上面弹出回栈的一部分被移除。main_fragment
squad_fragment
在某些通过 Crashlytics 向我报告的情况下,我看到来自squad_fragment
throws anIllegalArgumentException
的调用,调用看起来像:
这应该并且在我运行的每个测试中都简单地弹出squad_fragment
并给我留下main_fragment
,但在某些情况下(昨晚 20 次)我在这里遇到了一个异常,说后面的堆栈是空的。怎么会这样?有什么我做错了吗?
更新
我终于能够复制这个问题了。main_fragment
当我从应用程序的后台导航到任何地方,做一堆其他事情,然后从最近列表返回应用程序时,这似乎会发生。导航库似乎没有恢复后台堆栈?我现在使用的是 1.0.0-alpha02 版本。看来,如果popBackStack()
我没有调用它,而是调用navigateUp()
它有效,但这让我感到担忧,因为我目前退出身份验证子图的方式是通过调用popBackStack(R.id.authentication, true)
以返回触发身份验证流的任何片段。这最终将以相同的方式中断。
查看 NavController 中的代码,似乎返回堆栈已保存和恢复。所以我不明白为什么后台堆栈返回为空。此外,NavHostFragment 似乎正在备份 NavController 状态以及恢复它,所以我不知道为什么我的 backstack 是空的。
android - Android Jetpack Navigation 嵌套选项卡向后导航的奇怪行为
所以我正在尝试使用 BottomNavigationView 的 Jetpack 导航组件。我创建了两层BottomNavigationView,结构如下:
- MainActivity(带有 nav_host_fragment、navigation_graph、bottom_navigation)
- 片段A
- 片段B
- FragmentC(带有nested_nav_host_fragment、nested_navigation_graph、nested_bottom_navigation)
- 片段CA
- 片段CB
- 片段CC
我向前导航没有问题,但我无法正确向后导航。例如,当我从 A -> B -> C 导航并在 C 中导航 CA -> CB -> CC,然后单击返回按钮或调用 navControler 时,它应该从 CC -> CB -> CA -> B -> A,但它直接去了A。
最小的演示项目可以在这里找到,希望有人能提供帮助,谢谢。
android - 带参数的导航组件 .popBackStack()
我有两个片段。SecondFragment
和ThirdFragment
。实际上,我使用导航组件在片段之间传递值。像这样:
第二片段:
这是我从ThirdFragment读取值的方式:
它工作正常。现在我的堆栈是这样的:
使用新的导航组件将值从打开的ThirdFragment传递到前一个SecondFragment有任何选项吗?(当 ThirdFragment 完成时)
我知道 onActivityResult,但如果 Nav.Component 提供的解决方案比我想要的更好。
谢谢!