Повторное использование фрагментов в компоненте навигации - PullRequest
0 голосов
/ 03 июня 2019

У меня есть два занятия: MainActivity & LoginActivity.И у меня есть два отдельных графика для каждого занятия.У меня также есть пользовательский Fragment, в котором хотелось бы показывать как LoginActivity, так и MainActivity.Я легко могу включить мой <fragment> в оба навигационных графика.

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

Скажем, в моем nav_main я определил так,

<fragment
        android:id="@+id/simpleFragment"
        android:name="com.example.common.SimpleFragment">
    <argument
            android:name="title"
            app:argType="string"/>
</fragment >

И в моем nav_login у меня есть

<fragment
        android:id="@+id/simpleFragment"
        android:name="com.example.common.SimpleFragment">
    <argument
            android:name="header"
            app:argType="string"/>
</fragment >

Единственное отличие состоит в том, что у меня есть два разных аргумента, один - title, а другой - header.Если я строю проект, я получаю один класс SimpleFragmentArgs, где он объединяет эти два объявления в одно.Я не знаю, как это сливается, но мне кажется, что это случайно.Итак, выше двух объявлений дал мне SimpleFragmentArgs с одним параметром header.Параметр title был проигнорирован.Мой вопрос не о том, что выживает, а что нет.Я пытаюсь подчеркнуть, что вы не можете использовать фрагменты с аргументами.

Я все еще могу использовать традиционный arguments во Fragment и получать ошибки с тегами, но библиотека SafeArgs, которую рекомендует Navigation Component, генерирует так много избыточного, непригодного для использования кода.Я использую библиотеку SafeArgs в обычных случаях, когда у меня есть одно представление фрагмента.Но если у меня будет больше динамических фрагментов, то это приведет к большим потерям, что, как мне кажется, нехорошая архитектура.

Итак, есть ли лучшая архитектура для использования, когда дело доходит до повторного использования фрагментов и аргументов в компоненте навигации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...