问题标签 [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.
android - 导航组件防止在后按时重新创建片段
我在我的项目中使用 Jetpack 导航组件,其中包含一个活动和一些片段。
我有一个带有从服务器端填充的列表的片段。然后我调用getDataFromServer
该onViewCreated
方法,当用户单击一个项目时,会显示一个新片段。
问题是当我按下后退按钮时,onViewCreated
在我的列表片段中再次调用。
那么,我怎样才能防止我的第一个片段再次重新创建呢?我不想要不必要onViewCreated
的电话。
android - 使用 Android 导航图时如何显示 HomeAsUp
我在显示 HomeAsUp 时遇到问题。我认为有一种方法可以将 NavColtroller 与 ActionBar 联系起来。所以我不需要为每个 Fragment 手动调整 Toolbar,主要是在使用包含返回上一屏时。
android - 在android导航组件中添加进入动画以开始目的地
我知道如何action
在导航图中的标签中添加进入和退出动画。我也知道如何NavOptions
在导航时动态添加动画navController
。
我想知道我们如何StartDestination
在导航图中添加输入动画。我可以通过两种方式做到这一点:
- 将动画应用到起始目的地的根视图
- 使用将被原始目标片段替换的临时起始目标片段。
- 将动画应用于容器(
FrameLayout
)NavHostFragment
并动态添加宿主片段
但我想知道是否有为此目的的官方解决方案。
谢谢
android - 异常膨胀导航图
我刚刚将 Android Studio 更新到 v3.5,我的项目停止运行,给了我以下异常:
据我了解,Android 引发了这个异常,因为它无法在我的 MainActivity 中膨胀导航图......但自上次运行以来我没有改变任何东西!
MainActivity.java
activity_main.xml
nav_graph.xml
android - 异常:视图没有设置 navController
在我使用 navController = Navigation.findNAvController(view) 将其托管在活动中的标记片段中的片段中,应用程序因错误而崩溃:视图没有设置 navController。
这是导航图:
这是活动中的片段标签:
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?感谢您的时间。
android - Nav 组件 deeplink 不做条件导航
我正在使用 navcomponent 深层链接选项从通用链接深层链接到我的应用程序屏幕。
第 1 步:在 main_nav_graph 文件中添加 deeplink 参数
第 2 步:添加到我的 mainactivity 的清单文件中
第 3 步:点击短信上的链接以启动深层链接
看过的场景:
在我的应用中 SplashActivity 是 Main Launcher 。但是主要活动是初始化导航图的地方。所以我在 Manifest 中为主要活动添加了 navgraph 标签
主要活动作为单个任务添加。
现在,当我进行深度链接时,我看到:
我的主要活动恢复了 2 次(看起来像应用启动然后关闭然后再次启动并深层链接到屏幕)
如果用户未登录,我将进行条件检查以保持导航根视图。但我看到它仍然导航到创建异常场景的深度链接屏幕。
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
,例如(我通过添加来解决这个问题
前
)但我认为我没有像我应该做的那样做导航部分......
您能否提供任何帮助以使这项工作更有效且稳定?
android - 使用 BottomNavigation 的 NavController 目的地未知
我在主菜单类中使用 BottomNavigation 在主屏幕中循环浏览片段。奇怪的是我的应用程序崩溃了,因为 NavController 没有在四个片段之一中找到目的地。MainMenuFragment 与 MainMenu(包含片段和 NavHostFragment 的活动)不同。知道为什么会这样吗?
导航图: http ://prntscr.com/pcfufk
活动(MainMenu.java)画面http://prntscr.com/pcgcnv
在 MainMenu.java 中:
MainMenu.java 中的 onCreate:
导航图 xml