Issue
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>
Solution
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.
implementation "androidx.fragment:fragment:1.2.0-beta02"
Version 1.2.0-beta02
October 11, 2019
Bug fixes
Fixed an issue where Fragment's
onInflate()
did not receive proper attributes fromFragmentContainerView
, breaking cases such asNavHostFragment
. (b/142421837)
Source: https://developer.android.com/jetpack/androidx/releases/fragment#1.2.0-beta02
Answered By - Eugen Pechanec
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.