android - 数据绑定(bind)时导入和变量之间的区别?

标签 android android-databinding

审核后Data Binding documentation <import/>之间的区别和 <variable/> , 目前尚不清楚它们有何不同。以下是从文档页面中获取的示例。

<import type="com.example.real.estate.View" alias="Vista"/>

看起来相当于

<variable name="user" type="com.example.User"/>

除了一个alias可以以大写字母开头,而name不能。它们的用法甚至相似。

<data>
    <import type="com.example.MyStringUtils"/>
    <variable name="user" type="com.example.User"/>
</data>
…
<TextView
   android:text="@{MyStringUtils.capitalize(user.lastName)}"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"/>

我从示例中看到的唯一区别是您可以调用 import的方法,但不是 variable的。

最佳答案

如果您想将一些数据传递给 View ,您可以使用variable。在您的示例中,您有 User 类型的用户变量,您使用它在 TextView 中设置用户名。您可以调用变量方法 - user.lastName 等同于 user.getLastName()

使用import,您只指定要使用的类,不传递任何数据。在您的示例中,导入的实用程序类仅用于将用户名大写,capitalize 方法将其作为参数接收。

关于android - 数据绑定(bind)时导入和变量之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52171727/

相关文章:

android - 如何处理 fragment 内的 UI 事件的简单方法(onClick,...)

Android:使用 GPS 提供商获取位置会返回错误的位置

android - 如何在 Android 应用程序中使用其他字段将照片发送到服务器?

android - 是否有支持注释来表示绑定(bind)资源?

android - 如何为 android :layout_marginLeft based LiveData<Boolean> in Android Studio? 绑定(bind)不同的值

android - 禁用某些布局的数据绑定(bind)

android - 自定义 View 上的数据绑定(bind) "Can' t 引用 .setTag 空引用对象”

android - 我正在使用回收器 View 开发一个简单的电影列表应用程序

android - 如何导出点云数据(Project Tango)?

android - 是否可以仅使用 Assets 文件夹中的一个样式表将自定义 CSS 添加到 Xamarin 中的 WebView?