【问题标题】:Understanding LiveData and DataBinding了解 LiveData 和 DataBinding
【发布时间】:2019-12-10 00:08:18
【问题描述】:

我是 android 开发和 MVVM 的新手,并尝试了解 Databinding 和 LiveData。

  • 使用单向数据绑定,您可以将数据从视图模型获取到视图。
  • 使用双向数据绑定,您可以从视图模型到视图以及从视图到视图模型获取数据。

当视图模型中的数据发生变化时,LiveData 也会更新视图。

为什么我应该使用 LiveData,而 DataBinding 已经在单向和双向数据绑定中做到了这一点?

将数据绑定与 LiveData 一起使用有什么好处?

【问题讨论】:

    标签: android data-binding android-livedata mutablelivedata


    【解决方案1】:

    为什么我应该使用 LiveData,而 DataBinding 已经在两者中都这样做了 单向和双向数据绑定?

    LiveData 具有生命周期意识。这意味着当 Activity/Fragment 处于这些更新有意义的状态时,更新将被传递到您的 UI。

    将数据绑定与 LiveData 一起使用有什么好处?

    您不必担心 Activity/Fragment (livedata) 的生命周期,让 Google 生成代码来为您更新视图(数据绑定)。

    【讨论】:

    • 数据绑定库不支持生命周期?即使 Activity/Fragment 未处于启动状态,数据绑定也会向 UI 提供更新吗?
    • 并非如此。数据绑定生成的代码是为了将数据绑定到 UI 而编写的,但它不知道生命周期。这取决于开发者@SiddarthG
    • 谢谢,您还会对 recyclerview 视图持有者项目使用数据绑定,还是为每个视图持有者使用 livedata 制作视图模型?
    • 我使用了这两种方法,在我的例子中,BaseOservable 而不是 LiveData 被证明更有效
    猜你喜欢
    • 2021-03-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 2018-04-07
    • 2012-04-19
    • 1970-01-01
    相关资源
    最近更新 更多