我在数据绑定方面遇到了问题。文档中说,我们可以使用include标签来托管自定义布局并向其传递绑定变量。但是当我在4.1.2手机和模拟器上尝试时,数据似乎并没有绑定,只绑定了主要布局字段。
这是我的主要布局代码:
<layout>
<data>
<variable
name="Job"
type="nz.co.certifi.CERTIFI.Model.JobModel" />
</data>
<ScrollView
android:background="@color/TransparentColor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/scrollView"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="false"
android:layout_alignParentEnd="false"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true">
<RelativeLayout
android:background="@color/TransparentColor"
android:layout_width="match_parent"
android:layout_height="match_parent">
<include
app:Job="@{Job}"
android:id="@+id/layoutCertification"
layout="@layout/view_certification_control"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"/>
这是布局认证:
<layout>
<data>
<variable
name="Job"
type="nz.co.certifi.CERTIFI.Model.JobModel" />
<variable
name="Form"
type="nz.co.certifi.CERTIFI.Model.FormROIModel" />
</data>
<nz.co.certifi.CERTIFI.Control.EditTextWithModel
xmlns:sparkNS="http://schemas.android.com/apk/res/nz.co.certifi.CERTIFI"
sparkNS:modelProperty="CertificateId"
sparkNS:modelType="JobModel"
sparkNS:validationType="required_only"
android:contentDescription="Job: Form Certificate Id"
sparkNS:errorRequiredMessage="@string/error_reference_no_required"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="@string/activity_roi_step_one_hint_reference_no"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="@{Job == null? Form.certificateId : Job.certificateId}"
android:textStyle="bold"
android:id="@+id/txtReferenceNo"
android:layout_alignParentTop="false"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_toLeftOf="@+id/btnReference"
android:layout_toStartOf="@+id/btnReference"
android:layout_centerVertical="true" />