问题标签 [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 - 为什么Android导航组件屏幕不会回到上一个Fragment,而是调用上一个Fragment的onViewCreated中的一个方法?
我有 2 个片段调用CreateRoomFragment
,DisplayPhotoFragment
导航图如下所示:
因此,当我想从 to 移动时CreateRoomFragment
,DisplayPhotoFragment
我使用如下操作:
这样做,我可以导航到DisplayPhotoFragment
.
但是当我按下back
设备的按钮以及Back arrow
工具栏中的按钮时,它无法返回CreateRoomFragment
。
我试过这个,但仍然无法回到上一个片段:
现在主要问题:
通过使用上面的代码,屏幕没有回到之前的Fragment( CreateRoomFragment
)。它仍然卡在DisplayPhotoFragment
,但同时调用了CreateRoomFragment
onViewCreated
section中的API方法。
这是什么原因造成的?我该如何解决这个问题?
android - 如何在子片段中实现导航控制器?
我在我的 activity_main 中定义了一个导航控制器片段,它具有匹配父级的高度和宽度。因此,当我在片段之间导航时,它会替换整个屏幕。现在假设我导航到加载材料卡的片段。我希望那个材质卡有自己的导航控制器,它占据了材质卡的高度和宽度。所以当我使用它的导航控制器时,它只会替换素材卡视图中的片段,不会改变父视图。
有没有办法拥有两个导航主机片段?所以我可以在 activity_main 中定义一个,然后在子片段中定义另一个。
活动主:
子片段:
android - 带有嵌套底部导航的 Android 导航
我是 Android 导航组件的新手,想了解如何在我想要使用单一活动方法的相对简单的场景中使用它。我显然希望系统处理后台堆栈,也用于底部导航。
我需要的是2个非常简单的案例:
1. 混合目的地
我的导航图中的一些目的地有底部导航,而有些则没有。想象一下,我有一个没有底部导航的登录流程,然后转到我有底部导航的“真实应用程序”。谷歌表示将底部导航、抽屉、操作栏放在导航图之外,这意味着它们会显示在所有目的地。
导航组件是否支持此功能?没有隐藏/显示底部导航的肮脏技巧。
2.全屏弹窗
另一个问题 - 是否支持多个导航主机?想象一下,我有一个带有底部导航和操作栏的 UI,它们位于导航主机区域之外。但随后我需要显示一个全屏弹出窗口,如对话框或资源选择屏幕,它也会越过底部导航和操作栏。
我可以将其作为导航图中的目的地吗?
对于这两个问题,任何概念上支持的解决方案都对我有好处,包括在导航期间切换图表/主机。
android-databinding - androidx.navigation:navigation-fragment:2.2.0, get "You must call removeView() on the child's parent first." 在 navController.popBackStack()
我喜欢使用数据绑定和导航图。但是在从 androidx.navigation:navigation-fragment:2.0.0 更新 androidx 依赖项后,2.2.0 应用程序在按下“返回”按钮后崩溃。从其他片段返回到包含 FragmentPagerAdapter 的前一个片段后总是崩溃。
在build.gradle
如需查看问题和错误,请从https://github.com/ABRadzh/ErrorNavigation下载示例。否则我将很难解释错误发生在哪里。
- 按任何页面上的任何按钮。
- 按硬件“返回”按钮。
- 获取错误信息:
但是所有转换片段和数据绑定的代码都是自动生成的。我不知道我必须在哪里调用 removeView()。
如果您尝试使用旧的依赖项,请反转代码和布局中的所有注释。popBackStack() 将正常工作。
我没有发现有关此错误的任何信息。可能是,我做错了什么?
android - 使用 BottomNavigationView 和 SplashScreenFragment 作为 startDestination 的 Android 导航组件
目前我正在尝试实现启动时为 SplashScreenFragment 的应用程序,几秒钟后我切换到屏幕BottomNavigationView
然后我定义bottom_nav_menu.xml
如下:
导航组件版本:
bottomNavigationView.setupWithNavController(findNavController(R.id.nav_host_fragment))
现在,在活动布局内部定义的Activity
位置调用之后,nav_host_fragment
一切似乎都可以正常工作。
问题是,当用户按下后退按钮或在两个菜单项之间来回导航时,不会清除 backstack,这意味着在单击到 feature1 -> feature2 -> feature1 -> feature2 后,当用户按下后退按钮时导航如下: feature1 -> feature2 -> feature1 -> 在应用程序之外(原因popUpToInclusive
on SplashScreenFragment
),而所需的后退导航是: feature1 -> 在应用程序之外。
有人成功尝试使用BottomNavigationView
底部导航的第一项不是导航图的 startDestionation 吗?
已编辑,因为似乎问题是 startDestination 不包括图表
android - 使用导航组件深度链接处理数组查询参数
我在我的项目中使用单个活动结构,并且我想使用导航组件处理深度(应用程序)链接。一切都很好,但我无法处理数组查询参数。我想将complex_types作为字符串数组。
现有网址:
nav_graph.xml:
我不知道必须使用什么类型的 argType 而不是??? 在complexFilters参数中。
android - 如果使用导航架构组件已经存在片段,如何避免将片段添加到后台堆栈?
我正在使用导航组件,所以我没有使用 FragmentManager。假设我有片段 A,B。
如果用户导航 A -> B -> A -> B 然后按下后退按钮,我希望 backstack 只是 A 而不是 A -> B -> A。换句话说,如果 Fragment 已经存在,请不要添加它在后台。不使用 FragmentManager 这可能吗?
android - FragmentContainerView 和 app:navGraph - 此导航图未引用任何布局文件
为了防止升级到最新片段(1.2.2 版本)和导航(2.2.1 版本)后出现 Lint 警告(替换为),我将片段替换fragment
为FragmentContainerView
FragmentContainerView
但在那之后我发现我的错误@navigation/nav_graph
- 此导航图未引用任何布局文件
一切正常,但该错误非常烦人。