[Android] DataBinding
Data binding 在2015年7月发布的Android Studio v1.3.0 版本上引入,在2016年4月Android Studio v2.0.0 上正式支持。目前为止,Data Binding 已经支持双向绑定了。
步驟
1.環境建構
下載最新的 Support repository
2.build.gradle 設定
android {
....
dataBinding {
enabled = true
}
}
3.layout 佈局文件
必須以layout當作跟節點
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> <!-- 变量user, 描述了一个布局中会用到的属性 --> <variable name="user" type="com.connorlin.databinding.model.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.lastName}"/> </LinearLayout> </layout>
4.數據綁定後
会基于布局文件生成一个继承于
ViewDataBinding
的 Binding 类,将它转换成帕斯卡命名并在名字后面接上Binding
。例如,布局文件叫 main_activity.xml
,所以会生成一个 MainActivityBinding
类。这个类包含了布局文件中所有的绑定关系,会根据绑定表达式给布局文件赋值1 2 3 4 5 6 7 8 9 10 | protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // ActivityBaseBinding 类是自动生成的 ActivityBaseBinding binding = DataBindingUtil.setContentView(this, R.layout.activity_base); User user = new User("Connor", "Lin"); // 所有的 set 方法也是根据布局中 variable 名称生成的 binding.setUser(user); } |
留言
張貼留言