问题描述
xml布局中,通过include嵌入其他绑定ViewModel的databinding布局,如:
<include
android:id="@+id/layout_header"
layout="@layout/item_page_header"
bind:viewModel="@{viewModel.headerVM}" />
通过刷新headerVM中的ObservableField的方式刷新布局,发现更新未生效。
普通的控件,通过绑定ViewModel的ObservableField的方式,可以实时刷新,如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewModel.title}" />
解决方案
更新数据后,重新绑定include的布局和ViewModel并执行databinding的executePendingBindings()方法。
binding.layoutHeader.setViewModel(headerVM);
binding.executePendingBindings();