Home > Mobile >  DataBindingUtil bind layout from include
DataBindingUtil bind layout from include

Time:11-03

I have such content.xml Layout

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
    <view.TouchyWebView
        android:layout_width="match_parent"
        android:layout_height="100dp"
        android:id="@ id/content_view" >
    </view.TouchyWebView>

    <include
        android:id="@ id/view_list"
        layout="@layout/fragment_list"
        android:layout_width="match_parent"
        android:layout_height="596dp"
        app:layout_constraintTop_toBottomOf="@ id/content_view"
        tools:layout_editor_absoluteX="-9dp" />
</androidx.constraintlayout.widget.ConstraintLayout>
View view = inflater.inflate(R.layout.content, container, false);
WebView webView = view.findViewById(R.id.content_view);
binding = DataBindingUtil.inflate(inflater, R.layout.fragment_list, container, false); // this does'n work

And how can I bind fragment_list from include to DataBindingUtil.inflate or DataBindingUtil.bind?

like DataBindingUtil.inflate(inflater, R.layout.fragment_list, container, false); but throw content.xml Layout

CodePudding user response:

To use DataBinding in for fragment in android, use following way->

Create ->

private FragmentYourVideosBinding binding;
private View view;

Then use - >

binding = DataBindingUtil.inflate(inflater, R.layout.fragment_your_videos, container, false);
view = binding.getRoot();
return view;

To access the FragmentBindinding just type FragmentBinding then you will see your Fragment Binding layout name in dropdownlist. Is described in above link you can read from there.

Firstly wrap your all child layouts by layout tag as below. You can copy the code its same as your code.

            <?xml version = "1.0" encoding = "utf-8" ?>
                <layout xmlns:android="http://schemas.android.com/apk/res/android"
                    xmlns:app="http://schemas.android.com/apk/res-auto"
                    xmlns:bind="http://schemas.android.com/tools" >


                    <androidx.constraintlayout.widget.ConstraintLayout 
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:orientation="vertical">
                        <view.TouchyWebView
                            android:layout_width="match_parent"
                            android:layout_height="100dp"
                            android:id="@ id/content_view" >
                        </view.TouchyWebView>

                        <include
                            android:id="@ id/view_list"
                            layout="@layout/fragment_list"
                            android:layout_width="match_parent"
                            android:layout_height="596dp"
                            app:layout_constraintTop_toBottomOf="@ id/content_view"
                            tools:layout_editor_absoluteX="-9dp" />
                    </androidx.constraintlayout.widget.ConstraintLayout>

                </layout>
  • Related