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 и граф навигации вместе?
Возможно ли это вообще или нужен совершенно другой подход?