首页 > 解决方案 > MainActivity 作为导航图中的主页目的地

问题描述

我有一个简单的应用程序,由一个 MainActivity 和两个片段 FragmentA 和 FragmentB 组成。我想使用 NavigationGraph 以便用户仍然登陆 MainActivity 但随后可以使用两个按钮导航到 FragmentA 或 FragmentB。有没有办法做到这一点?根据DAC上的东西,看起来我必须使用三个片段加上 MainActivity。但我想知道我是否可以只使用我现有的 1 个活动和 2 个片段的方案。

添加细节以避免混淆?

MainActivity 有两个按钮:用户单击“Do A”转到 FragmentA,单击“Do B”转到 FragmentB。

但是,要使用导航图,我似乎必须再添加一个片段——MainFragment。我的问题是:有没有办法避免添加额外的片段并仍然使用导航图。

标签: androidandroid-architecture-navigationandroid-navigationandroid-navigation-graph

解决方案


Android 应用程序需要至少一个 Activity 来显示 UI。片段就像 android 应用程序中的按钮。如果不将其附加到活动,则无法显示它。在 android 导航教程中,有一个活动。该活动仅包含标签,因此它实际上是空的。在片段标签中,您显示一个片段,该教程向您展示如何在标签内切换片段。因此,即使您的应用显示不同的 UI(在片段之间切换),您也始终处于 MainActivity 中。

就像上面的 ianhanniballake 评论一样。你的活动显示了什么?你希望它展示什么?你总是看到它。

编辑:导航图仅适用于片段。如果您想在活动之间导航,请使用此代码:

Intent switchActivityIntent = new Intent(this, TargetActivity.class);
startActivity(switchActivityIntent);

您可以像往常一样使用导航图,当您需要打开活动时,只需使用该代码。它工作得很好..但是当你使用导航图时,为什么你需要使用多个活动?使用导航图时,您应该只有一项活动。这就是为什么谷歌制作那个东西(导航图)来支持单活动架构。


推荐阅读