带有 Viewpager2-Fragments 的实时数据

Livedata with Viewpager2-Fragments

我想更新我的旧 android 项目,并希望将 Google 的推荐方式与 ViewModel 和 Livedata 一起使用。 我使用 Viewpager2 和 Tablayout,其中包含 4 个片段。 第一个片段有一个 ViewModel 并通过 Livedata 观察数据变化并更新它的 UI。

我的问题是:

  1. 当我滑动到 Viewpager 中的第二个片段时会发生什么?第一个片段不再可见,但它仍然存在。 fragment1 的生命周期在不可见时会发生变化吗?如果没有,我怎么能停止更新它,因为它仍然会收到更新通知。

  2. 我能否对所有 4 个片段使用相同的 ViewModel,因为它们只是以另一种方式可视化 Livedata 中的数据变化。我该怎么做?

谢谢!

好的,经过一些测试,我找到了答案。

  1. 第一个fragment的生命周期变为滑动到第二个fragment时暂停,滑回时恢复resume。 您可以使用这些事件并设置一个 bool var 来更新 ui 或不更新。

  2. 您可以对所有片段使用相同的 ViewModel。当片段不可见时,您只需要注意不要更新。在我的案例中,您可以使用应用程序的生命周期。