【问题标题】:How to use Android Navigation Component + BottomNavigationView+ NavigationView (Navigation Drawer)如何使用Android导航组件+BottomNavigationView+NavigationView(导航抽屉)
【发布时间】:2019-10-11 17:05:04
【问题描述】:

我想知道使用 Navigation Component + BottomNavigationView + NavigationDrawer 的最佳做法是什么。

我已经为导航组件尝试了谷歌的高级sample。它适用于多个后端堆栈模块。因为它有一个解决方法extension。使用这种方法时,每个底部选项卡都有自己的图表,并且图表会随着您选择其中一个选项卡而变化。

但是在集成NavigationView的时候,需要提前知道导航图。但在高级示例中,没有使用 navGraph 属性,而是以编程方式为底部导航添加了图形。

那么当底部导航视图和导航抽屉视图一起使用时,我们如何管理图形呢?

【问题讨论】:

  • 你解决了吗?我面临着同样的困境。这里有一个使用 FragmentTransition 的解决方案:github.com/mreek/NavigationDrawer
  • 我做了一些解决方法。但我的方法仍然缺乏。 1.我使用google的底部导航扩展来保留后台堆栈。 2.但为了保留导航抽屉的链接,将抽屉目的地片段添加到每个底部导航图。总体感觉还不错。但我相信,有更好的方法))

标签: android navigation-drawer android-jetpack android-architecture-navigation android-bottom-nav-view


【解决方案1】:

在尝试了不同的方法后,我得出结论,当同时使用 BottomNavigationView 和 NavigationDrawer 时,最好保持导航图单一。当有多个导航图时,很难管理屏幕之间的逻辑连接。

为了控制工具栏和底部导航视图的可见性,我使用addOnDestinationChangedListener

navController.addOnDestinationChangedListener { controller, destination, arguments ->
        when(destination.id){ //check with destination ids,  }

这可能不是最佳做法。如果你有更好的方法,欢迎分享

【讨论】:

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