Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将导航组件用于多个活动_Android_Android Architecture Navigation - Fatal编程技术网

Android 将导航组件用于多个活动

Android 将导航组件用于多个活动,android,android-architecture-navigation,Android,Android Architecture Navigation,在Android文档中,它指出: 导航组件设计用于具有一个主活动和多个片段目的地的应用程序。主活动与导航图关联,并包含负责根据需要交换目的地的NavHostFragment。在具有多个活动目的地的应用程序中,每个活动都有自己的导航图 这是否意味着您不能使用导航组件从一个活动导航到另一个活动?情况似乎就是这样 第二个问题:如果我创建了一个使用导航抽屉的应用程序,那么当您添加一个活动时创建的默认代码(该活动将有一个导航抽屉)已经包含用于管理从一个抽屉项目到另一个抽屉项目的导航的代码。那么导航组件在这

在Android文档中,它指出:

导航组件设计用于具有一个主活动和多个片段目的地的应用程序。主活动与导航图关联,并包含负责根据需要交换目的地的NavHostFragment。在具有多个活动目的地的应用程序中,每个活动都有自己的导航图

这是否意味着您不能使用导航组件从一个活动导航到另一个活动?情况似乎就是这样

第二个问题:如果我创建了一个使用导航抽屉的应用程序,那么当您添加一个活动时创建的默认代码(该活动将有一个导航抽屉)已经包含用于管理从一个抽屉项目到另一个抽屉项目的导航的代码。那么导航组件在这里也没用吗

谷歌是否希望我们只创建单一活动应用程序

谷歌是否希望我们只创建单一活动应用程序

单活动体系结构是您可以朝着的方向发展的。它不受谷歌的限制(只是推荐)。该体系结构有其自身的优点和缺点。你不必为了添加导航组件而撕毁整个应用程序。评估并决定是否值得付出痛苦

这是否意味着您不能使用导航组件 从一个活动导航到另一个活动

否,您可以使用导航组件替换
startActivity
调用。只需将第二个活动导航图添加到第一个活动导航图,并使用导航控制器在两者之间导航

findNavController().navigate(directions)
下面是它的迁移指南

在需要使用不同活动的情况下,可以评估是否需要不同的活动或任务

如果我创建了一个使用导航抽屉的应用程序,默认代码 添加要具有导航的活动时创建的 抽屉已具有用于管理一个抽屉项目导航的代码 另一个。那么导航组件在这里也没用吗

而不是使用导航抽屉的默认代码来生成 您自己的导航抽屉,更符合导航 组成部分

问题是,您不必构建自定义组件或任何复杂的东西。实际上,使用导航组件(借助于NavigationUI类)简化了抽屉布局及其侦听器的代码

在,文档帮助您在使用导航抽屉和底部导航视图时实现导航组件

至于生成的模板,这些模板已经过时,需要升级

参考文献:

答案是不必要的

在导航组件的想法中,您需要有1+3个部分和无限的片段

你可以看

只有一项活动。

  • 单一活动
  • 它们在一个活动(单个活动)中起作用。

  • 导航图
  • 导航碎片
  • 导航控制器
  • 为什么没有必要?因为“1+3”的所有部分都是相互连接的

    详细信息: 导航图与NavFostFragment连接。此外,NavFostFragment在单个活动的XML文件中定义。此外,NavController将NavController定义为“navHostFragment.NavController”

    但是如果您真的想在活动中使用导航组件,则需要在活动中使用添加片段

    例如:

    [活动A+片段A]和[活动B+片段B]

    解决方案的理念是:

    对于活动A到活动B:导航片段A->活动B

    您可以迁移。对于活动A到活动B:导航片段A->活动B

    更多详情:


    活动已经有了自己的生命周期和状态。您希望每个导航组件包含或加入什么?这是一件无用的事!Navigation componet的用途基本上是减少对新活动的调用,对于使用片段来说,它的重量有些轻。1)这不是它的意思,因为您也可以在图形之间导航。2) 我不明白你想说什么,我们无法回答。他们确实指出,活动是应用程序的入口点。但这并不意味着谷歌不会推出单一的活动应用程序,他们是否建议使用导航抽屉的默认代码来构建自己的导航抽屉,使其更符合导航组件?这是否意味着我可以在活动的情况下从一个导航图转换到另一个导航图,但它们是独立运行的,并且我无法引用以前的导航图活动的导航图是否显示当前活动的pop并返回到上一个活动?是的,您可以使用
    navigate
    执行前向导航,使用
    navigateUp
    执行后向导航。对,您不能在另一个导航图中引用一个导航图的片段。它们相互独立。