DataBinding框架在绑定类中为布局中具有ID的每个View创建一个不可变字段。例如,DataBinding框架从以下布局中创建类型为TextView的firstName和lastName字段:
<layout xmlns:android="http://schemas.android.com/apk/res/android">
<data>
<variable name="user" type="com.example.User"/>
</data>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.firstName}"
android:id="@+id/firstName"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@{user.lastName}"
android:id="@+id/lastName"/>
</LinearLayout>
</layout>
DataBinding框架一次性从布局层次结构中提取View,包括ID。这种机制可能比为布局中的每个视图调用findViewById()方法更快。
ID不像没有使用DataBinding框架时那样必要,但仍有一些情况需要从代码访问View。
网友评论