【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)官方文檔


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