【问题标题】:Single activity app with Navigation Component and Navigation Drawer带有导航组件和导航抽屉的单活动应用程序
【发布时间】:2020-11-24 17:08:07
【问题描述】:

我想创建一个 Single Activity 应用程序,为简单起见仅包含以下屏幕: 登陆、登录、注册、主页、个人资料。仅当用户登录并属于导航抽屉时,主页和个人资料屏幕才会对用户可见。

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

是否可以在 Single Activity 应用中实现上述功能以及如何实现?

【问题讨论】:

    标签: android navigation-drawer android-architecture-navigation android-jetpack-navigation android-navigation-graph


    【解决方案1】:

    是否可以在 Single Activity 应用中实现上述功能以及如何实现?

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

    长答案:

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

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

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

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

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

    图表 1

    图表 2

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 2020-06-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多