【问题标题】:Livedata with Viewpager2-Fragments带有 Viewpager2-Fragments 的实时数据
【发布时间】:2020-01-08 15:19:03
【问题描述】:

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

我的问题是:

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

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

谢谢!

【问题讨论】:

    标签: android android-fragments android-livedata android-viewmodel android-viewpager2


    【解决方案1】:

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

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

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

    【讨论】:

    猜你喜欢
    • 2021-09-19
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 2022-06-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 1970-01-01
    相关资源
    最近更新 更多