Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
It is not possible for the view of the NavHostFragment to be available in the onCreate() of the Activity. In this case, the NavHostFragment lifecycle method follows the Activity lifecycle methods directly therefore, when the activity is on onCreate() so is the NavHostFragment. However, if the Fragment Lifecycle was driven with a LifecycleObserver (https://issuetracker.google.com/issues/127528777 ), onCreate() could be dispatched for a Fragment separately from the onCreate() for an Activity (or a parent Fragment if using a child Fragment). This means that if you were using a LifecycleObserver, it would be possible for the views to be available when onCreate() is dispatched and findNavController() would work in the LifecycleObserver's onCreate().
This is being tracked byhttps://issuetracker.google.com/issues/143145612 .
This is being tracked by
jb...@google.com <jb...@google.com> #3
Possible workaround #4: call findNavController in onPostCreate.
Description
Component used: Fragment Version used: 1.3.0-alpha06
Right now,
setMaxLifecycle()
only supportsLifecycle.State.CREATED
or higher. It would be nice ifsetMaxLifecycle()
could also supportLifecycle.State.INITIALIZING
only for Fragments that have never moved aboveCREATED
- i.e., only something that could be set alongside the Fragment being added to theFragmentManager
.This would allow developers and libraries built on top of fragments to keep fragments only at the attached state without going through
onCreate()
.