問(wèn)題描述
xml布局中,通過(guò)include嵌入其他綁定ViewModel的databinding布局,如:
<include
android:id="@+id/layout_header"
layout="@layout/item_page_header"
bind:viewModel="@{viewModel.headerVM}" />
通過(guò)刷新headerVM中的ObservableField的方式刷新布局昔瞧,發(fā)現(xiàn)更新未生效。
普通的控件梭姓,通過(guò)綁定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();