何时使用 executePendingBindings() 以及何时不需要?

sak*_*sak 6 android mvvm android-databinding android-mvvm

我正在为这两种情况寻找一个实际的例子,什么时候使用什么?我见过类似的线程,但它们只告诉“何时必须立即执行绑定”,但对于必须强制执行绑定的任何情况,都没有实时示例。所以请如果有人能用任何例子来解释什么时候使用它,什么时候不需要!

Mat*_*Pag 9

您应该使用的情况executePendingBindings()是(但可能还有更多):

每次绑定更新都可能导致 View 更改其大小,并且在下一帧中推迟计算可能会导致测量读取错误的值。

在 a 的情况下,RecyclerView如果出现这种情况:

  1. 您有多个viewType不同大小的 s(不同的 XML)
  2. 您的行高会根据视图内容而变化。

RecyclerView将在onBindViewHolder完成后测量行大小。如果根据您在此方法中设置的数据,行的高度发生变化,如果您不调用executePendingBindings().

强制绑定同步更新数据而不是在下一帧中使您免受错误的行大小测量(以及可能丢失的内容)

  • onBindViewHolder 应该仅针对可见元素(或接近可见元素)调用。只有那些元素受executePendingBindings 影响 (2认同)