Android Navigation library deep linking: How to synthesise backstack

后端 未结 2 910
没有蜡笔的小新
没有蜡笔的小新 2021-02-05 13:45

Using Android Architecture\'s Navigation component, I have the following navigation graph

-> [Home] -> [Articles List] -> [Specific Article]

<
相关标签:
2条回答
  • 2021-02-05 14:24

    Per the NavDeepLinkBuilder documentation, Navigation uses the startDestination of the destination for the synthetic back stack. If you Group destinations into a nested navigation graph, both the startDestination of the nested graph and the startDestination of the root graph are added to the back stack. This gives you the ability to have [Articles List] as the startDestination of the nested graph to add it to your back stack.

    However, it is strongly recommended to keep your synthetic back stack as small as possible - while a depth of 2 or 3 (as here) is fine, it is not recommended to go much beyond that level to avoid cases where users have to repeatedly tap and tap the back button to get back to the launcher.

    0 讨论(0)
  • 2021-02-05 14:25

    The documentation implies that my original solution should work.

    When a user uses the Back button from a deep link destination, they navigate back up the navigation stack just as though they entered your app from the app’s entry point.

    In addition, ianhanniballake's answer doesn't produce expected results (the deeplinked fragment is not opened).

    I have created an issue on google's tracker for both these problems: https://issuetracker.google.com/issues/79734195

    0 讨论(0)
提交回复
热议问题