Android: Is the binding variable bound and switching to tag inclusion?

I have a problem with data binding. The documentation says that we can use the include tag to place a custom layout and pass it a variable binding. When I tried on the phone 4.1.2 and the emulator, the data does not seem to be connected, but only the main fields of the layout are bound.

This is my main layout code:

<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"/> 

This is layoutCertification:

 <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" /> 
+5
source share
1 answer

Yes Yes. http://developer.android.com/tools/data-binding/guide.html#includes

Main layout

 <data> <variable name="plu" type="org.test.test.viewmodels.PluDetailViewModel" /> </data> . . . <include layout="@layout/keypad_pludetail" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_alignParentStart="true" bind:plu="@{plu}" /> 

Included Layout

 <data> <variable name="plu" type="org.test.test.viewmodels.PluDetailViewModel" /> </data> . . . <Button android:id="@+id/keypad_accept" style="@style/KeyPadButton" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:text="@string/keypad_accept" android:enabled="@{plu.isOK}" android:onClick="@{plu.confirm}" /> 

In fragment

  binding = DataBindingUtil.inflate(inflater, R.layout.fragment_plu_details, container, false); binding.setPlu(pluDetailViewModel); binding.executePendingBindings(); 
+10
source

Source: https://habr.com/ru/post/1239113/


All Articles