[Android] DataBinding 布局里include的databinding刷新不生效

問題描述

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();
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容