带有导航组件和导航抽屉的单一活动应用程序

Fiv*_*vos 0 android navigation-drawer android-architecture-navigation android-jetpack-navigation android-navigation-graph

我想创建一个单一活动应用程序,为简单起见,它只包含以下屏幕:登陆、登录、注册、主页、个人资料。主页和个人资料屏幕仅在用户登录后才可见,并且属于导航抽屉。

不幸的是,我想到的是用 nav_graph_1 创建一个活动,其中包含以下目的地:登陆、登录、注册。然后使用 nav_graph_2(主页和个人资料目的地)创建另一个活动,其中将包含导航抽屉的所有设置:例如setupActionBarWithNavController,带有 nav_graph_2 和抽屉的 appBarConfiguration。

是否可以在单个活动应用程序中实现上述内容以及如何实现?

Zai*_*ain 5

是否可以在单个活动应用程序中实现上述内容以及如何实现?

简短回答:是的,这是可能的。

长答案:

我想到的是用 nav_graph_1 创建一个活动,其中包含以下目的地:登陆、登录、注册。然后使用 nav_graph_2(主页和个人资料目的地)创建另一个活动,其中将包含导航抽屉的所有设置

我假设您拥有单个活动模型的主要问题是:您有一个容器,您建议将其作为您的第二个活动,因为其中包含子容器(抽屉片段)。如果您愿意,您可以这样做,但您也可以使用单个活动和多个片段排列在级联导航图中,如下面的导航图方案所示。

在此处输入图片说明

  • 着陆片段被视为您活动的根片段。
  • 您的活动布局有一个FragmentContainerView可以托管登录注册和主要片段
  • 用户登录后,切换到主片段
  • 与主活动布局一样,主片段布局只有一个FragmentContainerView用于其子片段。您可以在其中为其创建包含主页和个人资料片段的新导航图。

这里有 2 个导航图,第一个包含 4 个片段(登陆、登录、注册和主),另一个包含 2 个片段(主页和个人资料)。

因此,在您的示例中,您有 2 个导航图:

图一

在此处输入图片说明

图2

在此处输入图片说明