记一个jetpack databinding和include一起使用时出现的问题

1.简介

databinding可以获取当前布局的View对象

但是当前layout包含include子视图时,子视图的View元素不存在于binding上

2.解决

修改子视图,使用layout为根元素,使子视图生成binding

<?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:tools="http://schemas.android.com/tools">

    <androidx.appcompat.widget.Toolbar
        android:id="@+id/main_toolbar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:layout_constraintTop_toTopOf="parent"
        style="@style/main_toolbar" >
    </androidx.appcompat.widget.Toolbar>

</layout>

修改include指令,覆盖子视图id,此时可以从父级布局的binding引用到子视图的binding

上一篇:Android——MVVM之DataBinding(一)


下一篇:MVVM的说明