android - 防止导航到同一个 fragment

标签 android kotlin android-jetpack android-jetpack-navigation

我正在使用带有 BottomNavigationView 的 Android 导航喷气包库。我已经实现了 NavHost、NavGraph 和我的 fragment 。当我使用操作进行导航时,一切都按预期工作。

我使用以下代码来设置所有内容:

 val navController = Navigation.findNavController(this, R.id.nav_host)
 bottom_navigation.setupWithNavController(navController)

问题是,如果我点击一个选项卡 2 次, fragment 会重新创建两次。有什么办法可以拦截导航吗?我不想导航到正在显示的同一 fragment 。

最佳答案

根据 this issue ,

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

val navController = Navigation.findNavController(this, R.id.nav_host)
bottom_navigation.setupWithNavController(navController)
bottom_navigation.setOnNavigationItemReselectedListener {
  // Do nothing to ignore the reselection
}

关于android - 防止导航到同一个 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58210468/

相关文章:

java - Android 应用程序中终结器抛出未捕获的异常

android - 如何在操作栏中制作带有通知数量的图标?

android - 在第二个 ImageView 添加到 RelativeLayout 后,第一个 ImageView 消失

java - Sonarqube - 如何为 Kotlin 项目启用许可证检查器?

Android Studio For 循环开启

android - 视频 View 在 Proguard 下不起作用

android - View 的屏幕截图与 View 的大小不同吗?

android - android jetpack compose中的 "remember"和 "mutableState"有什么区别?

android - 使用 View 绑定(bind)时如何解决 'data binding is not enabled' 错误

带有导航库的 Android 应用静态快捷方式