【问题标题】:How to implement Navigation Drawer with Android Navigation Component如何使用 Android 导航组件实现导航抽屉
【发布时间】:2019-04-17 10:37:06
【问题描述】:

我正在尝试遵循最新的 Google 最佳实践,使用导航组件实现单个 Activity 应用程序。

但是在阅读了整个 Navigation 文档后,我仍然认为他们没有解决很多情况。

例如,我应该如何实现以下案例:

  • 应用程序以初始屏幕启动。然后经过一些加载进入新闻片段。

注意:启动画面应该从后台弹出,因为它不应该再被访问了。

  • 导航抽屉应在第 1 部分的所有片段中可用,允许用户在此部分的片段之间导航。

  • 但是,该部分中的某些片段可以导航到应该有后退按钮(而不是抽屉)的新区域。

【问题讨论】:

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


    【解决方案1】:

    您是否尝试过使用选定的Navigation Drawer Activity 创建新项目?

    1.抽屉

    在 XML 中,您应该为此活动添加一个 FrameLayout 来保存片段。然后,您可以开始将此活动用作片段的容器,并在DrawerMenuItem 单击时加载特定片段。 我使用这种方法重新加载片段:

    public void replaceFragment (Fragment fragment, Bundle args){
        fragment.setArguments(args);
        getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
    }
    

    并从活动中这样调用它:

    replaceFragment(Fragment.newInstance(), args)
    

    然后你的抽屉在所有片段中都可用。

    2。带有返回箭头的详细信息屏幕

    至于另一个屏幕,例如文章详细信息,您可以使用详细信息开始活动:

    startActivity(new Intent(packageContext, ArticleDetailsActivity.class));

    然后没有抽屉,你有一个后退按钮。

    3.飞溅

    关于创建一个“好的”启动屏幕 Google“Android 启动屏幕的正确方式”,medium(由 Sylvain Saurel 撰写)或 bignerdranch(由 Chris Stewart 撰写)上的帖子涵盖了这个主题。

    【讨论】:

    • 这是我目前所拥有的。但是,这不是使用 Android 导航组件。
    • 哦,对了。我不知道为什么我没有注意到那个标签:/
    【解决方案2】:

    nav controllerlockunlock 抽屉模式上使用DestinatedChangedListener

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-29
      • 2018-12-22
      • 1970-01-01
      • 2020-05-16
      • 2020-07-11
      相关资源
      最近更新 更多