【发布时间】:2020-02-28 21:54:24
【问题描述】:
我正在为这两种情况寻找一个实际的例子,什么时候使用?我见过类似的线程,但它们只告诉“何时必须立即执行绑定”,但对于必须强制执行绑定的任何情况,都没有实时示例。所以,如果有人可以用任何例子解释什么时候使用它,什么时候不需要它!
【问题讨论】:
-
已经检查过了。
标签: android mvvm android-databinding android-mvvm
我正在为这两种情况寻找一个实际的例子,什么时候使用?我见过类似的线程,但它们只告诉“何时必须立即执行绑定”,但对于必须强制执行绑定的任何情况,都没有实时示例。所以,如果有人可以用任何例子解释什么时候使用它,什么时候不需要它!
【问题讨论】:
标签: android mvvm android-databinding android-mvvm
您应该使用executePendingBindings() 的情况是(但可能还有更多):
每次绑定更新都可能导致 View 更改其大小并在下一帧中推迟计算可能会导致测量读取错误的值。
如果是RecyclerView,会发生这种情况:
viewTypes(不同的XML)RecyclerView 将在onBindViewHolder 完成后测量行大小。如果根据您在此方法中设置的数据,行高发生变化,如果您不调用executePendingBindings(),则测量无法考虑新内容占用的额外或减少空间。
强制绑定同步更新数据,而不是在下一帧中,这样可以避免错误的行大小测量(以及可能丢失的内容)
【讨论】: