Android DataBinding(数据绑定)

数据绑定(DataBinding)

DataBinding 是 Google 在 Jetpack 中推出的一款数据绑定的支持库,利用该库可以实现在页面组件中直接绑定应用程序的数据源。
DataBinding 可以和 ViewModel 一起使用,实现视图随数据的更新而更新。

要在安卓中使用 DataBinding ,要再 build.gradle(:app) 中添加

    buildFeatures {
        dataBinding = true
    }

在布局文件中,找到最外层的 Layout,找到小黄灯泡,点击

第一个选项,自动转换为 BindingLayout

可以代替原始的绑定控件操作,减少代码,更加简洁高效

      // 未使用 DataBinding ,初始化全部控件,再绑定到布局文件
      private TextView textView1;
      private TextView textView2;
      private TextView textView3;
      ...
      textView1 = view.findViewById(R.id.textView1);
      textView2 = view.findViewById(R.id.textView2);
      textView3 = view.findViewById(R.id.textView3);
      ...
      // DataBinding
      private Binding binding;
      binding = DataBindingUtil.setContentView(this, R.layout.activity_login);
      binding.textView1.setText("");
      binding.textView2.setText("");
      binding.textView3.setText("");

中可以自定义数据源

      <variable
            name="MiniProgram"
            type="cn.chingshen.douzhuan.models.MiniProgram" />

在 View 上可以使用 @{} 的形式使用数据源中的数据

            <TextView
                android:id="@+id/name"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="24dp"
                android:layout_toEndOf="@+id/logo"
                android:text="@{MiniProgram.name}"
                android:textColor="@color/white"
                android:textSize="15sp" />

== 前提是在得到数据源时,要设置到这个 Binding 中 ==

      MiniProgram miniProgram = response.body().getData();
      binding.setMiniProgram(miniProgram);
posted @ 2020-07-22 10:03  TzzTZhj  阅读(30)  评论(0)    收藏  举报