使用一个Activity托管的多个Fragment进行多次导航

时间:2018-04-09 12:05:26

标签: android android-fragments mvvm

使用 MVVM 的想法是该视图观察ViewModel更改和行为。我使用了Activity,它使用了7个片段,它们之间的导航通过观察不同片段中活动的个别变化并相应地启动/替换片段。例如,片段L调用setValue,然后主要活动接收到该事件,并从观察到的getValue切换到片段M和片段M调用MutableLiveData而不是直接作为变革的倾听者。那个正确的结构还是每个片段都应该自己观察变化?在多个碎片之间处理多个导航的正确方法是什么

1 个答案:

答案 0 :(得分:0)

我没有看到你刚刚说的话有什么不妥。碎片应该彼此独立,除非它们是嵌套的。

如果您需要片段之间的通信,可以通过多种方式完成。最基本的方法是通过活动来做到这一点。 Activity知道它的片段如何相互作用,但片段保持独立。他们可以听取事件,这里没问题,但要确保你有一个规则'在您的项目中有关如何处理事件。

E.g。我更喜欢让一个听众一次让订单更具可预测性。如果我想要多个片段来处理事件,我通常会将处理程序放在activity中,然后按照我需要的确切顺序将事件传递给片段。否则它很快就会失去控制。

还有其他方法,例如EventBusBroadcastReceivers或任何其他基于事件的机制。

我希望有所帮助。如果我没有回答你的问题,那么更准确地回答它我需要更具体的问题。