我希望有类似于 YouTube 的行为:
- 有一个工具栏和底部标签
- 转到“库”(第 5 个选项卡),向上按钮没有出现
- 进入“我的视频”,出现向上按钮
这是我的限制条件:
- 使用喷气背包导航
- 使用
Toolbar
(如果需要的话,在AppBarLayout
中) - 有底部标签(
BottomNavigationView
) - 所有底部选项卡都是“顶级”,因为它们不会更改
Toolbar
向上按钮 - 其他应用程序屏幕不是“顶层”,应该有向上箭头
- 其中一个选项卡是导航图的默认目的地
默认情况下,当全部实现后,导航由 Jetpack Navigation 库自动处理。我使用这个助手将工具栏与导航 Controller Hook :
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
关于android - 如何避免带有 Jetpack 导航和底部选项卡的向上按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53249418/