片段可以成为其他片段的中心枢纽吗?

时间:2019-09-19 07:27:12

标签: android android-fragments

我重构了一个较旧的应用程序,该应用程序的一个片段需要切成较小的片段。主要片段是一步一步的,报告问题页面。它的构建具有一个视图脚蹼,可对下一个按钮做出反应,并通过Retrofit获取数据。他们为什么选择让片段表现得像一种活动,这对我来说很奇怪。

示例
页面1“问题页面的主题是什么”
第2页“所选主题​​有什么问题”
Page 3“对问题的评论”
第4页“发送在每个页面(片段)上输入的问题数据”

我的问题是我不知道如何通过基础片段进行片段到片段的通信,因为我在网上可以找到的只是片段之间的活动。 (viewModel和接口)。

我是否需要进行新活动才能成为片段和通信的持有者,或者当前片段有办法吗?

更新
我意识到该应用程序使用导航抽屉来导航要用活动替换的片段,并且据我所知,使用导航抽屉和活动是一种不好的做法。所以我的问题又来了。

如果我使用导航抽屉导航到Fragment_A,并且在该片段中,我将每一步都分成较小的片段,例如Fragment_A1Fragment_A2等。我如何在他们之间沟通。 Fragment_A2如何知道我从int的列表中选择了什么Fragment_A1

代替导航抽屉导航到Fragment_A,它应该导航到Fragment_A1吗?

我可能缺少明显的东西。

1 个答案:

答案 0 :(得分:1)

涉及片段之间的通信有很多方法。仅举几例:

  1. 使用活动和界面作为调解人
  2. 使用目标片段概念(如果您将Page 2作为片段,那么为了与Page 1进行通信,您可以通过setTargetFragment将Page 1片段作为目标片段传递
  3. 使用偶数总线(例如otto)
  4. 使用本地广播和接收器
  5. 使用共享视图模型

...? :)

我建议使用p5(https://developer.android.com/topic/libraries/architecture/viewmodel.html#sharing

相关问题