【问题标题】:How to stop fragments reloading/recreation in Jetpack navigation如何在 Jetpack 导航中停止片段重新加载/重新创建
【发布时间】:2020-01-23 16:28:58
【问题描述】:

我正在尝试使用新的 Jetpack 导航组件。我将 BottomNavigationView 与 navController 一起使用: NavigationUI.setupWithNavController(bottomNavigation, navController)

但是当我切换片段时,每个片段都会重新加载!有什么方法可以停止片段重新加载/刷新?

【问题讨论】:

  • 不幸的是,目前这是不可能的。有一些方法...
  • 请问可以实现哪些方法?

标签: java android


【解决方案1】:

我也遇到了重新加载的问题。这对我有帮助。

override fun onCreate(savedInstanceState: Bundle?) {
...
val navController = Navigation.findNavController(this, R.id.mainFragment) 
bottomNavigation.setOnNavigationItemSelectedListener {
                if (it.itemId != bottomNavigation.selectedItemId)
                    NavigationUI.onNavDestinationSelected(it, navController)
                 true

}

这会在多次点击底部导航项时停止重新加载。

【讨论】:

  • 感谢您的回答,这工作正常。在我的片段中,我有一个滚动视图,当我滚动并离开片段a并转到片段b时,当我再次返回片段a而不是从我离开的地方加载时,它会再次开始重新加载。我在网上翻遍了所有的答案,但我没有找到答案,而且有些在 kotlin 中,这使得很难转换为 java。那么,你能帮我解决一下吗?
  • 这个答案只防止重新加载可见片段。
  • 感谢@Chamel 的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
相关资源
最近更新 更多