FragmentContainerView using findNavController

后端 未结 3 1623
日久生厌
日久生厌 2020-12-08 05:01

I\'m using Android Navigation Component with bottom navigation, lint gives a warning about replacing the tag with FragmentContainerView

3条回答
  •  鱼传尺愫
    2020-12-08 05:26

    As per this issue, when using FragmentContainerView, you need to find the NavController using findFragmentById() rather than using findNavController() when in onCreate():

    val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
    val navController = navHostFragment.navController
    

    This is because findNavController(R.id.nav_host_fragment) relies on the Fragment's View to already be created which isn't the case when using FragmentContainerView (as it uses a FragmentTransaction under the hood to add the NavHostFragment).

提交回复
热议问题