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

0 投票
1 回答
799 浏览

android - Android 架构导航 - onSupportNavigateUp()

finish()在使用导航库时,可以用in完成内部活动onSupportNavigateUp()吗?或者我们应该使用从堆栈NavController中删除它?Activity而且,我无法使用 NavController 删除Activity.

我的导航图如下所示:

我尝试使用如下:

(i) 在 DetailActivity 中使用 NavController

但得到例外,

java.lang.IllegalArgumentException:NavController 回栈为空

(ii) 在 BaseActivity 中使用 NavController

那也行不通。我做错了吗??

0 投票
1 回答
3029 浏览

android - 为什么android.arch.navigation会导致程序类型已经存在:android.support.v4.os.ResultReceiver$1?

我正在使用 Android Studio 版本

在调查新的建筑导航组件 android.arch.navigation 时,我遇到了这个构建失败。

我的应用程序 gradle 构建类似于:-

和项目级 gradle 构建:-

我已经尝试重构到 AndroidX,但是我收到一条消息,指出在项目中找不到任何用法,那么为什么仍然提到这个“v4”类?

0 投票
4 回答
4587 浏览

android - 查找 NavHostFragment Jetpack Navigation Android 时出错

我正在使用 Jetpack Navigation 来处理 Fragments 的导航。遵循文档后,当我运行应用程序时,出现以下错误。

构建.gradle

托管 NavHostFragment 的 Activity 的代码

}

活动的 XML 文件

我已经正确实现了导航图。此外,该项目被重构为 AndroidX。

0 投票
4 回答
12959 浏览

android - Proguard 导致 Android 导航组件运行时异常

android.arch.navigation:navigation-fragment-ktx:1.0.0-alpha01在将 NavigationComponent ( ) 集成到我的项目中并编译 27 的 sdk 后,我在使用 proguard 时遇到了这个崩溃

可能是因为 AAPT 还没有为导航组件生成保留规则?

0 投票
2 回答
722 浏览

android - Android Studio 3.2 金丝雀版本不呈现导航标签

Android studio 3.2 canary 14 不呈现导航标签。它只是显示等待构建完成。

导航图

在此处输入图像描述

0 投票
4 回答
7220 浏览

android - 使用新导航组件处理 Android onBackPressed

我需要一些建议;

我正在试验导航库。我有一个有 webView 的片段。我想检查它canGoBack是否可以,如果可以就这样做,否则不干涉。

1. 接口方法:由于 Navigation 正在处理事务,我不再手动创建片段的实例,我可以将其分配为活动中的侦听器。

1.重点听:我真的觉得它看起来很丑,我不认为这是一个通用的解决方案,所以我跳过了这个。

我需要一些关于如何使用导航库完成的意见。当您尝试从中获取currentDestinationnavController,它是NavigationDestination提供有关当前片段信息的对象,例如 xml 中给出的标签。

当我检查时fragmentManager,我看到它backStack是空的,并且片段交易发生在没有标签的情况下。

恕我直言,它不适合库的概念来进行findFragment某种操作以与当前片段进行某种交互,但我目前似乎无法找到解决方法。有什么建议么 ?

0 投票
2 回答
6182 浏览

android - Jetpack Navigation:NavHostManager 不是 FragmentManager 的活动片段

我正在使用 Jetpack Navigation 来处理 Fragments 的导航。
我一直在关注文档并安装了所需的组件,但在尝试显示托管 NavHost 片段的活动时,应用程序仍然崩溃

例外:

主要活动布局

主要活动 - Kotlin

我正在尝试测试 JetPack 功能,而我目前被困在这个功能上,有人知道可能出了什么问题吗?是因为 Android 3.2 仍在预览中吗?任何帮助将非常感激..

0 投票
1 回答
1470 浏览

android - 如何获取由 NavHostFragment(导航架构组件)加载的片段(SupportMapFragment)的引用

我正在试用 google IO 2018 会议中介绍的导航架构组件。我正在尝试制作一个包含三个选项卡的应用程序,每个选项卡一个片段。在其中一个中,我想使用 Google Maps API 放置地图。通常您应该在 Activity 的 OnCreate 中执行此操作

R.id.map isSupportMapFragment内部的idmain_activity.xml

然而,导航架构组件设置略有不同。 main_activity.xml仅包含一个NavHostFragment(加载每个屏幕的片段的位置)和一个BottomNavigationView在应用程序的不同目的地之间移动的。

我的导航图看起来像这样

如您所见,第一个和第三个选项卡有两个startFragment片段endFragment。在第二个中SupportMapFragment,我试图参考。我不能使用标准getSupportFragmentManager().findFragmentById(int id)方式,因为main_activity.xml只包含一个NavHostFragment

我尝试尝试getChildFragmentManager()但没有太大成功。我也试过navController.getCurrentDestination(),但它返回一个NavDestination我不能用来检索加载的片段的对象。

我发现的唯一解决方案是SupportMapFragment直接添加,activity_main.xml使其与导航图完全分开,但这比解决方案更像是一种解决方法,因为当用户位于另一个屏幕时,我必须手动处理显示和隐藏地图。

如果有人知道正确的解决方案,请分享。

0 投票
3 回答
36867 浏览

android - 导航架构组件 - 活动

我一直在关注Navigation Architecture Component的文档,以了解这个新导航系统的工作原理。

要从一个屏幕返回/返回另一个屏幕,您需要一个实现NavHost接口的组件。

NavHost 是一个空视图,当用户在您的应用程序中导航时,目的地会被换入和换出。

但是,目前似乎只有 Fragments 实现NavHost

导航架构组件的默认 NavHost 实现是 NavHostFragment。

所以,我的问题是:

  • 即使我有一个可以用 a 实现的非常简单的屏幕,Activity为了使用这个新的导航系统,Fragment是否需要托管包含实际视图的 a?

  • 会在不久的将来Activity实现接口吗?NavHost

- 更新 -

根据 ianhanniballake 的回答,我知道每个活动都包含自己的导航图。startActivity但是,如果我想使用导航组件(替换“旧”调用)从一项活动转到另一项活动,我可以使用activity destinations. 我activity destinations不清楚什么,因为迁移文档没有详细说明:

然后可以通过将活动目的地添加到导航图来链接单独的活动,从而替换整个代码库中 startActivity() 的现有用法。

  • 使用ActivityNavigator而不是有什么好处startActivity吗?
  • 使用导航组件时,从活动中走出来的正确方法是什么?
0 投票
5 回答
4270 浏览

android - 使用 Android Jetpack 从导航抽屉导航

我正在尝试在我的 android 应用程序上实现喷气背包导航。我创建了一个导航图,如下所示:

图表编辑器的图片

和导航抽屉菜单xml,如下所示:

菜单导航抽屉菜单项设计的图片

根据android开发者网站中的文档,这里

为菜单项提供与片段或目的地相同的 id 应该足以确保单击菜单项会将我导航到指定的片段。这似乎不起作用,我错过了什么吗?