禁用底部导航控制器中的当前选项卡

Disabling the current tab in a bottom navigation controller

我正在使用 Jetpack Navigation 来处理底部导航控制器。效果很好;但是,我正在寻找一种改进用户体验的方法。

是否可以禁用用户当前导航到的选项卡?

我可以 "spam" 底部导航中的当前选项卡,这会重新加载数据和不必要的 UI。如果这种行为(重新点击当前选项卡)是有意的,有没有办法保留片段的状态,以便在离开和导航到时,它不会重新创建?

我如何处理底部导航:

navController = NavHostFragment.findNavController(navigation_host_fragment)
NavigationUI.setupWithNavController(bottom_navigation_view, navController)

根据this issue

Feel free to set a OnNavigationItemReselectedListener, which takes precedence over the OnNavigationItemSelectedListener set by NavigationUI: setOnNavigationItemReselectedListener

bottom_navigation_view.setOnNavigationItemReselectedListener {
  // Do nothing
}