After updating to Navigation 2.2.0-beta01 from the previous version, lint gives a warning about replacing the <fragment>
tag with FragmentContainerView
.
However, replacing the tag alone seems to prevent the navigation graph from being inflated.
According to 2.2.0-alpha01, FragmentContainerView
is used internally. Should we ignore the lint warning?
activity_main.xml
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Lint warning: "Replace the <fragment> tag with FragmentContainerView. -->
<fragment
android:id="@+id/nav_host_main"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:navGraph="@navigation/nav_graph_main"/>
<!-- other elements -->
</androidx.constraintlayout.widget.ConstraintLayout>
The NavigationBasicSample has been updated to 2.2.0-alpha01 but is still using the
fragment
tag. The NavigationAdvancedSample shows the use of theFragmentContainerView
, but the nav graph is inflated in the code (they have several different graphs) and the corresponding host fragment is added to theFragmentContainerView
. So I'd say at this time we should ignore the warning if we want automatic inflation.Important! There are known issues with different versions of
FragmentContainerView
. See the changelog before using. Read through bug fixes and use a recent version of the library.For now, you should also declare dependency on Fragment 1.2.0-beta02 as it includes a fix for this use case.
Source: https://developer.android.com/jetpack/androidx/releases/fragment#1.2.0-beta02