如何为生成的 DataBinding Class 提供自定义名称?

How to provide Custom name for generated DataBinding Class?

tasks_frag.xml是一个带有DataBinding的布局文件,希望将生成的class导入TasksFragment.kt,可以看到图A.

我知道 Android 生成 class 名称 TasksFragBinding 基于 tasks_frag自动规则,但规则很难记住。

有没有一种简单的方法可以在 Android Studio 中导入生成的 DataBinding class?

tasks_frag.xml

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>
    </data>
    ...

</layout>

TasksFragment.kt

import com.example.android.architecture.blueprints.todoapp.databinding.TasksFragBinding
class TasksFragment : Fragment() {
  ...
}

图片 A

如果出于某些原因您对生成的绑定的名称感到失望 class,您可以随意命名它们。

根据文档,

Binding classes may be renamed or placed in different packages by adjusting the class attribute of the data element.

只需在 <data class="SomeClass"> 标签中提供您想要的 class 名称即可。

在你的情况下,

<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data class="MyClassName">
    </data>
    ...

</layout>

然后您放心,生成的绑定 class 将被命名为 MyClassName,您可以轻松导入。