【问题标题】:Multiple navigation using multiple Fragments hosted by one Activity使用由一个 Activity 托管的多个 Fragment 进行多重导航
【发布时间】:2018-04-09 12:05:25
【问题描述】:

使用 MVVM 的想法是视图观察ViewModel变化并采取行动。我正在使用Activity,它使用 7 个片段,它们之间的导航通过观察来自不同片段的 Activity 中的各个变化并相应地启动/替换片段。例如,Fragment L 调用setValue,结果主Activity 接收到事件并切换到Fragment M 和Fragment M 从观察到的MutableLiveData 调用getValue,而不是直接充当变化的监听器。那是正确的结构还是应该每个 Fragment 自己观察变化?处理多个片段之间的多个导航的正确方法是什么

【问题讨论】:

    标签: android android-fragments mvvm


    【解决方案1】:

    我看不出你刚才说的有什么问题。片段应该彼此独立,除非它们是嵌套的。

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

    例如我更喜欢一次只有一个听众,以使顺序更可预测。如果我想要多个片段来处理事件,我通常将处理程序放在活动中,然后按照我需要的确切顺序将事件传递给片段。否则可能很快就会失控。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-07-06
      • 1970-01-01
      • 1970-01-01
      • 2018-09-12
      • 1970-01-01
      • 2021-10-27
      • 1970-01-01
      • 2023-03-06
      相关资源
      最近更新 更多