5

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

如何使用导航架构组件 XML 图从片段中概括/抽象导航流以进一步重用?目前,我只看到为每个片段创建单独的目的地或嵌套导航的方式,但在重用方面这是一个糟糕的想法。另一种选择是在 Kotlin/Java 代码中进行所有条件转换,但在这种情况下,应用程序的流程将不会在导航图模式中描述。有没有更好的方法来重用导航?

官方文档在这个主题上很模糊:https ://developer.android.com/topic/libraries/architecture/navigation/navigation-conditional

4

1 回答 1

0

片段可以与导航架构组件一起重复使用,以保持代码高效。

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

  1. 在 NavGraph 设计工具中选择New destination以添加 Fragment。 在此处输入图像描述

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

a) 对于嵌套的 Fragment,我在使用 Fragments 的导航组件时代之前通过 bundle 传递一个参数。

b) 对于新屏幕,我选择添加到 NavGraph 的片段,然后单击参数部分中的+按钮。然后,您可以按照使用导航组件添加参数的文档在此处输入图像描述

于 2018-09-10T01:01:04.470 回答