1、公共布局:common_add_goods.xml
- 一个onClick方法
- 一个字段
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable
name="onClick"
type="android.view.View.OnClickListener" />
<variable
name="hasGoodsData"
type="Boolean" />
<import type="android.view.View" />
</data>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="89dp"
android:layout_marginStart="18dp"
android:layout_marginTop="15dp"
android:layout_marginEnd="18dp"
android:layout_marginBottom="80dp"
android:background="@drawable/bg_white_corner_4"
android:gravity="center"
android:orientation="vertical"
android:visibility="@{hasGoodsData?View.GONE:View.VISIBLE}">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/icon_add"
android:drawablePadding="7dp"
android:gravity="center"
android:onClick="@{onClick}"
android:padding="5dp"
android:text="@string/add_goods"
android:textColor="@color/cl_333"
android:textSize="16sp" />
</LinearLayout>
</layout>
2、使用公共布局
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
<variable
name="viewModel"
type="com.kedacom.androidteam.trafficpoliceaffairs.viewmodel.checkpoint.inspect.InspectionDetailViewModel" />
<variable
name="mActivity"
type="com.kedacom.androidteam.trafficpoliceaffairs.view.activity.checkpoint.inspect.InspectionDetailActivity" />
<import type="com.kedacom.androidteam.trafficpoliceaffairs.R" />
<import type="com.kedacom.androidteam.trafficpoliceaffairs.constants.CheckpointConstant" />
<import type="android.view.View" />
</data>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
layout="@layout/common_add_goods"
app:hasGoodsData="@{viewModel.hasGoodsData}"
app:onClick="@{()->mActivity.addGoods()}" />
</RelativeLayout>
</layout>
注意事项:
include文件中定义了hasGoodsData变量,使用时,app:+变量名,例如: app:hasGoodsData。