Компонент «Навигационная архитектура Android», обрабатывающий различные backstacks - PullRequest
0 голосов
/ 10 декабря 2018

Я ищу компонент Navigation Architecture, и все примеры, которые я видел, касаются одного приложения Activity с интеграцией нижнего меню Android, поэтому я хотел бы знать, может ли этот компонент быть полезным в моей ситуации.Мое приложение выглядит так: SplashActivity, которое загружает некоторые данные и, если все в порядке, запускает основное действие.MainActivity с пользовательской нижней навигацией, позволяющей пользователю перемещаться по 3 различным разделам приложения (A, B, C), а внутри каждого раздела пользователь может перемещаться по более глубокому разделу iside:

раздел A: FragmentAOne ->FragmentATwo -> FragmentAThree

секция B: FragmentBOne -> FragmentBTwo

секция C: FragmenCOne -> FragmentCTwo -> FragmentCThree

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

Теперь мне нужно, чтобы каждый раздел был независим от других (каждый фрагмент должен иметь свой backstack), чтобы пользователь мог быть внутри FragmentAThree, перейти к FragmentCOne и вернуться в разделА и до сих пор остается внутри FragmentAThree.

Может ли компонент архитектуры навигации справиться с этой странной ситуацией?

1 Ответ

0 голосов
/ 29 декабря 2018

Это может быть достигнуто с помощью новейшего навигационного компонента, вам нужно будет установить пункты назначения верхнего уровня, например:

    val drawerLayout : DrawerLayout? = findViewById(R.id.drawer_layout)
    appBarConfiguration = AppBarConfiguration(
            setOf(R.id.FragmentAOne, R.id.FragmentBOne, R.id.FragmenCOne),
            drawerLayout)

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

Обратите внимание, что начальное назначение всегда считается верхним уровнемместо назначения.Если вы не укажете список пунктов назначения верхнего уровня, то единственным пунктом назначения верхнего уровня будет ваш начальный пункт назначения.Вы можете узнать больше о AppBarConfiguration в документации.

Вы можете прочитать и поэкспериментировать с этим в навигационной кодовой метке https://codelabs.developers.google.com/codelabs/android-navigation

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