Jetpack 导航到一个共同的目的地

Joh*_*ohn 9 navigation android android-jetpack android-architecture-navigation

我一直在 Jetpack 中使用新的新 Navigation-API,但遇到了一个找不到令人满意的解决方案的问题。

基本上我正在创建的应用程序有大量不同的片段。大多数片段与后端对话,当他们这样做时,他们会发现他们的会话已超时。发生这种情况时,我想转到登录片段。我能够做到这一点的唯一方法是为每个片段创建一个动作,目标指向登录屏幕。这是很多我宁愿避免的样板。有没有更简单的方法来做到这一点?

Ale*_*lex 13

对于此用例,您可以使用全局操作。要创建全局操作,请在导航图中选择所需的目的地。右键单击并在菜单中选择“添加操作”并单击“全局”,这将在导航图根元素中创建一个全局操作:

<action android:id="@+id/action_global_signInFragment" app:destination="@id/signInFragment"/>
Run Code Online (Sandbox Code Playgroud)

现在,您可以通过调用 navigation() 方法并将所需全局操作的 id 传递给它来使用全局操作:

NavHostFragment.findNavController(this).navigate(R.id.action_global_signInFragment)
Run Code Online (Sandbox Code Playgroud)

https://developer.android.com/topic/libraries/architecture/navigation/navigation-global-action

  • 怎么用论证? (4认同)