问题标签 [android-jetpack-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.

0 投票
2 回答
11420 浏览

android - android导航组件向上按钮,箭头显示但popTo不起作用

我正在使用一个非常简单的设置、一个活动 (MainActivity) 和 4 个片段的喷气背包导航组件

主要片段,

CardPreviewFragment,

创建卡片段,

和 AddPredictionChipsFragment,

NavigationUI 组件使用我的工具栏设置我的导航控制器,我为每个目的地设置了操作,并且还为每个目的地设置了 popTo。我可以成功导航到这些片段中的每一个,并且工具栏标题正确更改,并且主页图标正确显示后退箭头,但按下箭头使用 popTo 操作什么也不做(如果我设置弹出进入和退出动画并使用后退按钮返回动画使用)。欢迎任何想法,以下是为简洁而编辑的相关代码

主要活动

我的主要活动确实使用了操作栏,显示了一个搜索栏和一些菜单项,我不知道这是否会以某种方式影响它(已尝试将它们删除以保持不变)

content main 包含一个导航主机片段

片段使用 androidx : EditFragment 扩展片段并且不使用菜单选项或任何类似的东西它们都只是标准片段,这是我的导航图

这是我调用其中一个动作的示例,

此操作导航到从标签中获取正确标题的正确位置,但不允许我使用箭头向后/向上导航,完整项目在这里

更新这是可重现的

我可以创建一个新项目添加导航组件和 2 个片段添加导航图并将导航主机添加到内容主,我最终得到相同的行为(箭头出现但不会弹出到任何东西,包括图形本身)我正在使用“ androidx.navigation:navigation-fragment:2.1.0-alpha03" 和 "androidx.navigation:navigation-ui:2.1.0-alpha03" 我在这里做了一个示例项目并在问题跟踪器中提出了一个错误

更新谷歌已经回复我并说这是预期的行为虽然我相当确定他被误解并且肯定没有运行我发送的示例

0 投票
2 回答
346 浏览

android - 在运行时更新 NavDestination 标签

我无法在运行时更新 NavDestination 的标签。它会反射,但不是从我第一次进入屏幕时开始,它不会立即反射

我的视图模型

片段中的 LiveData 观察

0 投票
1 回答
136 浏览

android - Jetpack Navigation Deep Link 带有错误的 ActionBar 按钮

当我从启动器图标打开我的应用程序时,所有导航和操作栏按钮都可以正常工作。但是,当我从显式深层链接访问应用程序时,我的 ActionBar 会感到困惑。

我的主要导航是:

-> [TaskListFragment] -> [TaskDetailFragment]

通过启动器图标打开时,后退按钮正确显示: 正确的行为

在我的应用程序中,您可以为每个任务创建一个警报,因此当警报响起并且用户单击通知时,流程是:

-> [TaskDetailFragment]

然后,它显示了错误的按钮: 错误行为 单击抽屉图标,它返回到[TaskListFragment]。行为是正确的,但 ActionBar 图标不正确。

这就是我创建深层链接的方式:

这是GitHub 上的完整代码。

MainActivity与所有导航样板。

还有我的导航图

我还尝试了几个基本实现,例如 Google 的向日葵和架构组件示例,但均未成功。

0 投票
2 回答
1883 浏览

navigation-drawer - 如何使用安全参数将数据从导航抽屉传递到活动?

假设我们有一个像这样的项目:

链接到一个简单的项目:https ://github.com/udacity/andfun-kotlin-android-trivia/blob/Step.11-Solution-Adding-Animation/app/src/main/java/com/example/android/导航/MainActivity.kt

如果用户从导航抽屉中选择其标题,我的navGraph文件 包含片段和一个我想去的活动。我想向这个 Activity 发送一些数据。如何使用安全参数来做到这一点?

我在用着:

0 投票
1 回答
1458 浏览

android - 导航视图全局操作返回状态

我一直在搞乱 Jetpack 导航组件,我创建了一个使用导航抽屉的活动。

这如我所料,但后来我为设置屏幕添加了一个全局操作

并参考NavigationView菜单中的操作。

这会显示SettingsActivity,但是当我按下返回按钮返回到MainActivity第一个目的地时会显示,而不是上一个目的地。即使NavigationView正确保存了它的状态,并且检查了最后一个目的地(而不是列表中的第一项)。

我也尝试用SettingsActivitya替换SettingsFragment,结果相同。

选择全局操作后,如何让导航组件正确保存其状态?

0 投票
1 回答
2653 浏览

android - 导航组件共享元素转换适用于输入,但不适用于弹回

我正在尝试在 2 个片段 BlankFragment 和 BlankFragment2 之间使用共享元素动画。BlankFragment 有一个回收器视图,BlankFragment2 是一个详细信息屏幕。他们共享一张图片,我正在使用新的导航组件。

在 BlankFragment 中,我正在使用共享图像的转换名称构建FragmentNavigator.Extras附加功能并将其传递给我的调用navigate(因为它是一个回收器视图,这些需要是唯一的),

在 BlankFragment2 我收到这个名称,将其设置为我的图像并设置setSharedElementEnterTransition

结果是进入动画工作正常但退出/返回没有,我尝试设置它们而不是设置它们(因为我相信导航组件应该为我处理这个)有人可以帮忙吗?

MainActivity 导航设置

处理返回按钮

BlankFragment OnClick

带有返回/退出转换的 BlankFragment2 onCreate

获取参数方法

设置图像过渡名称

0 投票
1 回答
42 浏览

android - 有没有办法导航到目的地并将另一个添加到 NavigationManager 中的 backtstack?

嗨,我是 android NavigationManager 的新手。

考虑在 nav_graph 中连接的片段 A、B 和 C,如图所示。方案

基本上我想要实现的是从片段 A 直接导航到 C。但是当单击后退按钮时,我希望它的行为就像我在片段 B 中的第一个一样。

所以A->C,后退按钮:C->B->A

有什么方法可以将片段 B 添加到 backstack 而不使用 NavigationManager 实际显示它?

0 投票
0 回答
57 浏览

android - 升级 Jetpack Navigation 会导致其他库的编译错误

我试图 _

但它会导致编译错误,其中导入失败无法com.mapbox.mapboxsdk:mapbox-sdk-geojson 解析

发生这种情况有什么原因吗?我的设置是:

  • Android Studio 3.3(目前无法更新到 3.4)
  • 科特林 1.3.0 版

以下是构建失败的一些屏幕截图:

在此处输入图像描述 在此处输入图像描述

0 投票
1 回答
4712 浏览

kotlin - 如何在某些片段中隐藏底部导航栏?

我有一个带有 navGraph 的活动和一个带有 2 个菜单项的底部导航栏。我的问题是My Bottom Navigation Bar到处出现,detailFragment、aboutFragment、signInFragment等等。

我如何限制它只显示在我的菜单项上的 2 个片段上?

这就是我解决它的方法

0 投票
1 回答
992 浏览

android - 如何设置和检索 NavGraph.xml 中设置的参数?

我知道有关 Android 导航的 Android 开发者文章:

https://developer.android.com/guide/navigation/navigation-pass-data

https://developer.android.com/guide/navigation/navigation-getting-started

这两篇文章都没有描述如何在源片段中设置 NavGraph.xml 中定义的参数的值以及如何在目标片段中检索它们?你能给我一个提示吗?

我也知道 Navigation.createOnClickListener(int ID, Bundle args) 方法将 OnClickListener 设置为按钮以导航到不同的目的地。但是包 args 与我在 NavGraph.xml 中定义的参数类型不同。不是吗?