Навигация Jetpack и popBackStack () - PullRequest
0 голосов
/ 26 мая 2020

Сценарий:

Используется навигация Jetpack, и у меня есть два графика навигации g1 и g2 вместе с их экранами (фрагментами).

g1

  • g1s1
  • g1s2

g2

  • g2s1
  • g2s2

После навигации с g1 От s1 до g1 s2 до g2 s1 до g2 s2 Я хочу вернуться к g1 s2 .

Проблема:

In g2 s2 Я мог бы позвонить findNavController().popBackStack() два раза, но я не хочу, чтобы этот экран делал предположения о бэкстэке. Я хочу что-то вроде findNavController().popCurrentGraphFromStack(). До сих пор я находил это:

findNavController().popBackStack(R.id.**g2**, true)

Он почти делает то, что я ожидал, но вместо того, чтобы перейти к g1 s2 , это собирается g1 s1 (начальный пункт назначения g1 ).

Как это можно решить?

Кстати, с расширением (Kotlin) это может быть очень удобно:

fun Fragment.popCurrentGraphFromStack() {
    findNavController().popBackStack(findNavController().graph.id, true)
}
...