我有一个带有四个片段的底部导航栏和一个活动,底部导航栏是使用NavController设置的,如下所示:
navController = Navigation.findNavController(this, R.id.dashboardNavHostFragment).apply {
setGraph(R.navigation.nav_graph , bundle)
}
bottomNavigationView.setupWithNavController(navController)
我在底部导航的第一个片段中传递一些数据,我需要这些数据。问题是它能正常工作,数据以以下方式出现在片段中。
private val args: PlayerFeedFragmentArgs by navArgs()
private var data: String? = args.name
但是当我使用底部导航进行导航,并回到我的第一个片段时,数据会变为null。我尝试使用以下方式保存数据:
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putString("name", data)
}
我曾经在onViewCreated方法中获取数据,但是在底部导航栏的不同碎片间切换时,由于onSaveInstanceState方法不会��调用,所以这种方式行不通。
有什么方法可以让我在第一个碎片中保存来自活动的参数,在底部导航栏切换碎片时保持参数不变呢?
SharedViewModel
。 - Debarshi Bhattacharjee