Android: используйте com.github.appintro.AppIntro и навигационный график вместе

Снимок:
у меня есть проект, разделенный на несколько модулей.
У меня есть одно приложение-приложение, фрагменты и функциональность которого разделены на разные модули.
В дополнение к MainActivity у меня теперь есть активность AppIntro. Модуль, содержащий MainActivity, имеет ссылку Gradle на модуль AppIntroActivity.

Задача:
с одного из моих слайдов мне нужно перейти к определенному фрагменту (внутри MainActivity).

Проблема:
я не могу отправить намерение в MainActivity (потому что ссылка уже идет в другую сторону).

Поэтому моя идея состоит в том, чтобы ссылаться на модуль, содержащий навигационный граф, который знает путь к нужному фрагменту.

Выполнение:

  • Настройте файл Gradle со ссылкой на «androidx.navigation:navigation-fragment-ktx», а также на модуль, содержащий граф навигации. -> Проверить

  • Добавьте FragmentContainerView в Activity_onboarding.xml -> Проверьте:

             <androidx.fragment.app.FragmentContainerView
         android:id="@+id/nav_host_fragment"
         android:name="androidx.navigation.fragment.NavHostFragment"
         android:layout_width="0dp"
         android:layout_height="0dp"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toRightOf="parent"
         app:layout_constraintTop_toTopOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:defaultNavHost="true"
         app:navGraph="@navigation/nav_graph_onboarding" />
    
  • Настройте навигационный график ("nav_graph_onboarding.xml"):

             <?xml version="1.0" encoding="utf-8"?>
     <navigation xmlns:android="http://schemas.android.com/apk/res/android"
         xmlns:app="http://schemas.android.com/apk/res-auto"
         android:id="@+id/nav_graph.xml"
         app:startDestination="@id/appIntroFragment">
    
         <fragment
             android:id="@+id/appIntroFragment"
             android:name="com.github.appintro.AppIntroFragment"
             android:label="AppIntroFragment" />
    
         <include app:graph="@navigation/nav_graph_login" />
     </navigation>
    

Во-первых, все выглядит хорошо. Откроется макет онбординга, и я смогу перемещаться по нему.

Проблема в этой реализации заключается в том, что onClickListener (на кнопках) на слайдах больше не реагирует. Если я удалю «androidx.fragment.app.FragmentContainerView», все будет работать нормально.

Вопрос: Как я могу использовать AppIntro и граф навигации вместе?
Возможно ли это вообще или нужен совершенно другой подход?

0 ответов

Другие вопросы по тегам