神刀安全网

Android 官方数据绑定 Data Binding Library

DataBinding 支持 Android 2.1 (API level 7+)
并且 Gradle 1.5.0-alpha1 以上
以上条件毫无疑问不用考虑了,如果有不满足条件的请自行百度。废话不多说直接上实战

构建环境

在你的对应Module中的 build.gradle文件中添加,然后Rebuild Project就可使用DataBinding了

android {         ....         dataBinding {               enabled = true       } }

Layout 文件

<?xml version="1.0" encoding="utf-8"?> <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:id="@+id/name"            android:text="@{user.firstName}"/>        <TextView android:layout_width="wrap_content"            android:layout_height="wrap_content"            android:text="@{user.lastName}"/>    </LinearLayout> </layout>

使用dataBinding后根布局就需要改成layout,然后在

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

最后再在Activity的onCreate中

@Override protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);    User user = new User("Test", "User");    binding.setUser(user); }

至此即实现了显示绑定

双向绑定

只需要在@后面加一个=即可

 <TextView android:text="@={user.lastName}"/>

获取view

DataBinding.id即可获取view,且自动识别类型

   MainActivityBinding binding = DataBindingUtil.setContentView(this, R.layout.main_activity);     binding.user
Object 对象
/**  * Created by cheng on 2016/9/26.  */ public class User {    public final String firstName;    public final String lastName;    public User(String firstName, String lastName) {        this.firstName = firstName;        this.lastName = lastName;    } }

还有跟多用法请参看Android 官方文档
https://developer.android.com/topic/libraries/data-binding/index.html?hl=zh-cn#data_binding_layout_files
dataBinding特性

  • 支持双向绑定
  • 支持绑定Listener 事件
  • 支持绑定方法
  • 支持绑定属性
  • 支持直接获取View 免使用findViewById
    等等其他特性

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » Android 官方数据绑定 Data Binding Library

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址