androidandroid-fragmentsandroid-architecture-componentsfragmentmanagerandroid-architecture-navigation

How to get NavHostFragment


I'm integrating Android's Navigation Architecture Components into my app. I ran into some problems with passing data to the start of a fragment from an activity, so I was following this answer: Navigation Architecture Component- Passing argument data to the startDestination.

The logic seems sound to me, but I'm struggling to determine how to actually get the NavHostFragment. Elliot Shrock used this line -

val navHostFragment = navFragment as NavHostFragment

But I haven't found a Java equivalent that works. I tried getting the fragment of my navHost by using getSupportFragmentManager().findFragmentById(R.id.[mynavhostid])

but this command is returning null. Any ideas?


Solution

  • I solved this by first inflating the view which contains the NavHost, then using the supportFragmentManager to get the navHost Fragment and pass in my default args.

    Hoping that Google's Android team provides a cleaner solution to this in the future.