【Android快捷开发笔记系列】——Data Binding

       在开发中遇到一些问题或者新学习了一些知识,总是需要看很多文档,一般有效文档(能帮助我们解决问题的文档)也就那么几篇,假如每次需要重新回顾或者进阶,又得重新去查找,这样既浪费时间又低效率。可能我们会采用浏览器设置书签存储,但是存的多了也就不好查找。所以将一些知识点或者Android体系相关的资料进行整合,形成体系化。便于自己巩固查找,提高学习效率。该文档后续会持续更新.....

1. Data Binding  

       顾名思义,数据绑定,是Google对MVVM在Android上的一种实现,可以直接绑定数据到xml中,并实现自动刷新。现在最新的版本还支持双向绑定,尽管使用场景不是那么多。

      Data Binding可以提升开发效率(节省很多以往需要手写的java代码),性能高(甚至超越手写代码),功能强(强大的表达式支持)。

用途:

  • 去掉Activities & Fragments内的大部分UI代码(setOnClickListener, setText, findViewById, etc.)
  • XML变成UI的唯一真实来源
  • 减少定义view id的主要用途(数据绑定直接发生在xml)

使用:

       要开始使用Data Binding,首先需要在Android SDK Manager的支持库里下载该库。请确保您使用的是Android Studio的兼容版本。Android Studio的Data Binding插件需要Android Studio 1.3.0 或 更高版本。目前我使用的是Android Studio3.0,所以使用的时候直接在APP ->build.grodle中添加如下代码即可使用。
a)工作环境
     你的app要使用Data Binding,需要添加Data Binding到gradle构建文件里,如下:

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

        }

        Data Binding插件将会在你的项目内添加必需提供的以及编译配置依赖。

b) 除了添加如上代码外,在自己的布局中需要以<layout> </layout>为跟布局。

<?xml version="1.0" encoding="utf-8"?>
<layout
    xmlns:android="http://schemas.android.com/apk/res/android"
>
  <LinearLayout
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      android:orientation="vertical"
  >
    
  </LinearLayout>
</layout>

疑惑:

       在实际使用的过程发现了一些使用上的小问题,现记录如下,假如有知道更优解的同仁请留言赐教,以求共同进步大笑

      发现图一代码中的ActivityMainBinding类,是通过DataBindingUtil.setContentView(this,R.layout.activity_main); build代码以后才会生成的,还有ItemGridviewMainBinding等都是如此,那么每次写的时候假如自己不知道该使用哪个api的话,都要build项目,然后去图二所在的目录下(app->build->generated->source->apt->debug/release->包名下)去查找。这样对于不熟悉的人来说,会影响开发效率。

(图一)

public class MainActivity extends AppCompatActivity {
  private ActivityMainBinding mBinding;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    initView();
  }
  private void initView() {
    mBinding= DataBindingUtil.setContentView(this, R.layout.activity_main);
    AdapterMainGridview adapterMainGridview = new AdapterMainGridview(this.getApplicationContext());
    mBinding.gridviewMain.setAdapter(adapterMainGridview);
    mBinding.gridviewMain.setOnItemClickListener(new AdapterView.OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> adapterView, View view, int position, long l) {
        clickItemShow(position);
      }
    });
  }

(图二)

参考链接:

(0)从零开始的Android新项目7 - Data Binding入门篇

(1)从零开始的Android新项目8 - Data Binding高级篇

(2)棉花糖给Android带来的Data Bindings(数据绑定库)  

(3) Data Binding 从入门到精通

(4)Data Binding(数据绑定)用户指南

(5)Q Q音乐 Android 团队分享 Android Data Binding 数据绑定

(6)Android,Data Binding的官方双向绑定

(7) Android Data Binding 双向绑定

(8)官方文档


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章