如何避免带有 Jetpack 导航和底部选项卡的向上按钮?

How to avoid the up button with jetpack navigation and bottom tabs?

我希望有类似于 YouTube 的行为:

这是我的限制条件:

默认情况下,当全部实现后,导航由 Jetpack 导航库自动处理。我使用这个助手将工具栏与导航控制器挂钩:

NavigationUI.setupWithNavController(main_toolbar, navController)

这很好用,但如果我切换底部选项卡之一,就会出现向上按钮,按下它会弹回默认目标。

不使用底部标签时这没问题,但使用时就很尴尬了。

您可以指定 AppBarConfiguration 作为 NavigationUI.setupWithNavController 的第三个参数。并将顶级目的地传递给它,如下所示:

Set<Integer> topLevelDestinations = new HashSet<>();
topLevelDestinations.add(R.id.navigation_home);
topLevelDestinations.add(R.id.navigation_trending);
topLevelDestinations.add(R.id.navigation_subscriptions);
topLevelDestinations.add(R.id.navigation_inbox);
topLevelDestinations.add(R.id.navigation_library);

AppBarConfiguration appBarConfiguration = new AppBarConfiguration
        .Builder(topLevelDestinations)
        .build();
NavigationUI.setupWithNavController(toolbar, navController, appBarConfiguration);

更多详情:AppBarConfiguration