一直尝试data binding。但发现data binding在复杂页面上,填充的速度好像很慢。
以RecyclerView中的item,使用data binding填充数据为例。
方法一:在xml中通过
android:text="@{item.content}";
方法二:在onBindViewHolder中,
binding.tvContent.setText(item.content);
(利用ViewDataBinding取到textview然后手动设置文本)
.
其他都一样。
只是方法一是通过在xml中自动绑定数据,方法二是自己手动设进去。
结果实际上手动设效率高很多。
方法二,甚至会出现item滑出来之后,数据才填上去导致RecyclerView跳动的情况。
如果是在xml中进行如下类操作
android:visibility="@{imgNumber > 0 ? View.VISIBLE : View.GONE }"
情况就更明显了。在xml中指定的方式,好像优先级会很低的感觉。
说白了,就好像分两步,先生成view,然后绑上数据。这两步之间的时间差远比手动设置要大。
有人遇到过吗?这是data binding机制本身的缺陷?还是其他什么原因?
你好,你的问题解决了吗?我也是遇到databinding绑定数据绑定视图而更新视图慢的问题。微信:13533361755