問題描述
xml布局中,通過include嵌入其他綁定ViewModel的databinding布局,如:
<include
android:id="@+id/layout_header"
layout="@layout/item_page_header"
bind:viewModel="@{viewModel.headerVM}" />
通過刷新headerVM中的ObservableField的方式刷新布局,發(fā)現(xiàn)更新未生效。
普通的控件,通過綁定ViewModel的ObservableField的方式,可以實(shí)時(shí)刷新,如:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{viewModel.title}" />
解決方案
更新數(shù)據(jù)后,重新綁定include的布局和ViewModel并執(zhí)行databinding的executePendingBindings()方法。
binding.layoutHeader.setViewModel(headerVM);
binding.executePendingBindings();