Используя FragmentContainerView с компонентом навигации? - PullRequest
10 голосов
/ 10 октября 2019

После обновления Navigation 2.2.0-beta01 от предыдущей версии lint выдает предупреждение о замене тега <fragment> на FragmentContainerView.

Однако при замене тегаКажется, что только он предотвращает раздувание навигационного графика.

Согласно 2.2.0-alpha01 , FragmentContainerView используется внутри. Должны ли мы игнорировать предупреждение lint?


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>

Ответы [ 2 ]

4 голосов
/ 12 октября 2019

На данный момент вам также следует объявить зависимость от Fragment 1.2.0-beta02, поскольку он содержит исправление для этого варианта использования.

implementation "androidx.fragment:fragment:1.2.0-beta02"

Версия 1.2.0-beta02

11 октября 2019

Исправления ошибок

Исправлена ​​ошибка, из-за которой onInflate() Фрагмента не получала надлежащие атрибуты от FragmentContainerView, исключая такие случаи, как NavHostFragment. ( b / 142421837 )

Источник: https://developer.android.com/jetpack/androidx/releases/fragment#1.2.0-beta02

1 голос
/ 12 октября 2019

NavigationBasicSample обновлен до 2.2.0-alpha01, но все еще использует тег fragment. NavigationAdvancedSample показывает использование FragmentContainerView, но граф навигации надувается в коде (они имеют несколько разных графиков), и соответствующий фрагмент хоста добавляется к FragmentContainerView. Поэтому я бы сказал, что в настоящее время мы должны игнорировать предупреждение, если мы хотим автоматическую инфляцию.

...