DataBing 下include的双向绑定
先看下ViewModel中的监听回调函数
public BindingCommand onPositionClick =new BindingCommand(new BindingAction() {
@Override
public void call() {
ToastUtils.showShort("点击了地图");
}
});
main.xml中的实现
<data>
<variable
name="viewModel"
type="com.yc.sendfood.ui.home.HomeFragmentViewModel" />
</data>
......
<include android:id="@+id/include"
layout="@layout/custom_titlebar_home"
binding:onShopCarClick="@{viewModel.onShopCarClick}"
binding:onSearchClick="@{viewModel.onSearchClick}"
binding:onPositionClick="@{viewModel.onPositionClick}"/>
在include下的引用
<variable
name="onPositionClick"
type="me.goldze.mvvmhabit.binding.command.BindingCommand" />
include下的使用
<ImageView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
binding:onClickCommand="@{onPositionClick}"
android:src="@mipmap/ic_home_position" />
特别声明:BindingCommand类是封装的命令回调函数,用于ViewModel与xml之间的数据绑定 详细可以参考开源的MvvmHabit项目。