【发布时间】:2019-09-19 21:02:05
【问题描述】:
我正在重构一个较旧的应用程序,它有一个片段需要被切割成更小的片段。主要片段是一步一步的,报告问题页面。它的构建带有一个对下一个按钮做出反应的视图翻转器,并通过 Retrofit 获取数据。为什么他们选择让片段表现得像一个活动对我来说很奇怪。
示例
第 1 页“什么是问题页面主题”
第 2 页“所选主题有什么问题”
第 3 页“评论问题”
第4页“发送每页输入的问题数据(片段)”
我的问题是我不知道如何通过底层片段进行片段到片段的通信,因为我只能在网上找到片段之间的活动。 (视图模型和接口)。
我是否需要创建一个新的活动来成为片段和通信的持有者,或者有没有办法处理当前片段。
更新
我意识到该应用程序使用导航抽屉来导航我想用活动替换的片段,据我所知,使用导航抽屉和活动是不好的做法。所以我的问题又来了。
如果我使用导航抽屉导航到Fragment_A,并且在那个片段中,我将每个步骤分成更小的片段,例如Fragment_A1、Fragment_A2 等等。我如何在他们之间进行交流。 Fragment_A2 怎么知道int 我从Fragment_A1 的列表中选择了什么。
应该导航到Fragment_A1,而不是导航抽屉导航到Fragment_A?
我可能遗漏了一些明显的东西。
【问题讨论】:
-
如果fragmentA想要和fragmentB通信,它应该使用底层的activity作为通信通道。我建议您创建一个
ViewModel,将其附加到活动并在片段中检索它。 -
也是我要去的地方,感谢您的反馈