【问题标题】:How to implement TextView Clock using data binding?如何使用数据绑定实现 TextView 时钟?
【发布时间】:2019-06-03 10:18:39
【问题描述】:

一种解决方案是创建一个TimerTask 来更新 LiveData 变量“时间”。然后使用数据绑定将该变量分配给 TextView。有没有更好的实现方式?

【问题讨论】:

  • 你必须使用 TextView + 数据绑定吗?一般来说,我认为 TextClock 更适合这个用例:developer.android.com/reference/android/widget/TextClock.
  • 我需要文本统一自动调整大小。由于 TextClock 不继承 AppCompat TextView,因此自动调整大小不会向后兼容。

标签: android data-binding kotlin textview android-databinding


【解决方案1】:

不建议使用LiveData 来完成永无止境的任务。 LiveData 的目的是实现生命周期自动化。当视图的生命周期结束时,视图的数据不再更新。

但是,无论您使用HandlerThread 还是Timer,都不可避免地需要在视图生命周期结束时手动停止它们。这使得使用LiveData 进行生命周期自动化毫无意义。

另外,LiveData的核心作用是缓存视图的数据,保证当你短时间离开视图并返回时,可以将视图恢复到之前的状态,而无需重新加载数据源.
但是,日期变量不需要缓存。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2023-03-19
    • 2023-03-11
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多