使用 jetpack navigation 在 action bar 中显示后退箭头

Use jetpack navigation to display back arrrow in the action bar

我有一个带有底部导航和操作栏的 Jetpack 导航图设置。底部导航有 3 个选项卡。其中 1 个选项卡有一个详细的片段,我想在操作栏中显示后退箭头。

MainActivity onCreate() 中,我添加了:

supportActionBar?.setDisplayHomeAsUpEnabled(true)

这会在每个选项卡和片段上显示后退按钮。

除非用户导航到非顶级片段,否则如何防止显示后退按钮?是否有检测此特定导航何时发生的方法?如果是这样,我想我可以做类似 supportActionBar?.setDisplayHomeAsUpEnabled(false)

的事情

此外,有没有办法在子页面上显示自定义后退箭头?默认箭头不适合 UI。

如果需要,很乐意提供更多详细信息。

您可以使用 NavigationUIsetupWithNavController(BottomNavigationView,NavController) and setupActionBarWithNavController(AppCompatActivity,NavController,AppBarConfiguration) 的组合。第一个将底部导航绑定到导航控制器,第二个将设置支持操作栏来关注导航。

使用 AppBarConfiguration.getTopLevelDestinations() 您将能够配置何时显示后退箭头。默认仅将导航图的根视为顶级目的地,但您也可以使用另一个构建器来定义一组顶级目的地。