条件片段和导航重用

时间:2018-06-26 12:08:50

标签: android android-fragments android-architecture-components android-navigation android-architecture-navigation

给出N个表示同一实体的不同UI的片段。片段有条件地显示。该条件仅在运行时中已知。每个片段应具有相同的导航流程。

如何使用导航体系结构组件XML图概括/提取片段中的导航流以进一步重用?当前,我仅看到为每个片段创建单独的目标或嵌套导航的方法,但是就重用而言,这是一个糟糕的主意。另一个选择是在Kotlin / Java代码中进行所有条件转换,但是在这种情况下,将不会在导航图模式中描述应用程序的流程。有没有更好的方法可以重用导航?

有关此主题的官方文档非常少见:https://developer.android.com/topic/libraries/architecture/navigation/navigation-conditional

1 个答案:

答案 0 :(得分:0)

片段可以与导航体系结构组件重复使用,以保持代码高效。

例如,我的 HomeFragment 中有一个嵌套的子片段,名为 ContentFragment ,其中包含内容。我正在重新使用 ContentFragment 在另一个屏幕上显示另一种类型的内容。

  1. 在NavGraph设计工具中选择新目的地以添加片段。 enter image description here

  2. 将参数传递给嵌套的Fragment和随NavGraph启动的Fragment,以便Fragment可以读取参数并为每种情况提供适当的逻辑。

a)对于嵌套的Fragment,在导航组件时代之前的Fragment中,我照常通过捆绑包传递了一个参数。

b)对于新屏幕,我选择添加到NavGraph的片段,然后单击参数部分中的 + 按钮。然后,您可以遵循documentation在导航组件中添加参数。 enter image description here

相关问题