DataBinding 布局xml 中使用 import 标签导入 Java、Kotlin 类

71 阅读1分钟

导入android 中类:import

<?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">
<data>
    <import type="android.view.View" />
</data>

<ProgressBar
    style="@style/loadingStyle"
    android:id="@+id/progressBar"
    android:layout_width="20dp"
    android:layout_height="20dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintEnd_toStartOf="@id/tv_tips"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintHorizontal_chainStyle="packed"
    android:visibility="@{loading?View.VISIBLE:View.GONE}"
    />
    </layout>

导入java的常用对象变量,使用:variable

<?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">
    <data>
      
        <variable
            name="text"
            type="java.lang.String" />
        <variable
            name="loading"
            type="java.lang.Boolean" />
    </data>
    ```
<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/tv_tips"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toEndOf="@id/progressBar"
    android:layout_marginStart="5dp"
    android:layout_marginVertical="10dp"
    android:gravity="center"
    tools:text="扫描中 SwingU-335FD4"
    android:text="@{text}"
    android:textColor="@color/global_color"
    android:textStyle="bold"
    android:textSize="@dimen/font_size_big"
    android:visibility="@{loading?View.VISIBLE:View.GONE}"
    />
    </layout>

导入自定类的实体

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

    <data>

        <import type="com.xx.mobile.base.ExtKt" />

        <variable
            name="vm"
            type="com.xx.mobile.ui.delivery.viewmodel.xxModel" />
    </data>
  
<androidx.appcompat.widget.AppCompatTextView
    android:id="@+id/cust_name"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginHorizontal="12dp"
    android:layout_marginTop="19dp"
    android:text="@{vm.clientName}"
    android:textColor="@color/font_color_dark"
    android:textSize="@dimen/font_size_big"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    View_height_px="@{vm.itemAbnormalListShow?(ExtKt.getScreenHeight() / 2):50}"
    tools:text="1808测试酒店" />