天天看點

DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  

DataBingding個人使用很久了,覺得很好用且友善,讓自己的代碼更加簡單且少,讀取來更有可讀性。建議還未入手的趕緊用起來,真的是友善快捷簡單。正常用法很簡單,我将使用中需要注意的地方進行一下總結和歸納。本篇文章适合DataBinding的進階和擴充學習。DataBinding的基礎學習位址為:DataBinding中文官方文檔

使用注意細節

雖然DataBinding使用簡單,但是還有些需要注意的地方,我将在下面意義列舉出來。

DataBinding(二)

目錄fa 

背景和使用限制

使用DataBinDing的優點

如何配置

符号轉義

使用注意細節

背景和使用限制

早在2015谷歌 I/O大會上就已提出DataBinding。如下是2018年google I/O大會,釋出的AAC及其他的圖。在2019的I/O 大會中AAC 有了新的趨勢和改變CameraX、SavedState for ViewModel、Jetpack Compose。

DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  

資料綁定庫既具有靈活性又具有廣泛的相容性—它是一個支援庫,是以您可以将其與所有Android平台以及Android 2.1(API級别7+)一起使用。同時要滿足Android Gradle 1.5.0-alpha1或更高版本的插件。

DataBinDing的優點

1.再也不需要編寫findViewById了,比butterknife好用多了

2.實時監測資料,自動重新整理控件顯示

dataBinding的本身是對View層狀态的一種觀察者模式的實作。DataBinding采用了觀察者模式,雙向binding的使用需要防止死循環造成ANR,解決方案是需要判斷前後兩次的值是否一樣。

針對每個Activity或者Fragment的布局,在編譯階段,會自動生成一個ViewDataBinding類的對象,該對象持有Activity要展示的資料和布局中的各個view的引用。同時還有如下優勢:将資料分解到各個view、在UI線程上更新資料、監控資料的變化,實時更新,這樣一來,你要展示的資料已經和展示它的布局緊緊綁定在了一起。

如何配置

首先在module的build.gradle中配置如下

DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  

上面的配置滿足了Java形式的支援,如果你是需要支援在kotlin中使用Databinding,則需要在module的build.gradle中繼續配置

DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  
DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  
DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  

為什麼配置了 dataBinding{enabled = true}之後就可以使用dataBinding方式進行開發了?

Android Studio中是依靠gradle來管理項目的,在建立一個項目時,從開始建立一直到建立完畢,整個過程是需要執行很多個gradle task的,這些task有很多是系統預先幫我們定義好的,比如build task,clean task等,DataBinding相關的task也是系統預先幫我們定義好的,但是預設情況下,DataBinding相關的task在task清單中是沒有的,因為我們沒有開啟dataBinding,但是一旦我們通過 dataBinding{enabled = true}的方式開啟DataBinding之後,DataBinding相關的task就會出現在task清單中,每當我們執行編譯之類的操作時,就會執行這些dataBinding Task, 這些task的作用就是檢查并生成相關dataBinding代碼,比如dataBindingExportBuildInfoDebug這個task就是用來導出debug模式下的build資訊的。

ActivityMainBinding這個類從哪來的?

通過第一個問題的解釋,我們也就知道了ActivityMainBinding這個類其實是系統幫我們自動生成的。

但是如果你在實際編寫代碼的過程中,你會發現并沒有執行編譯、運作之類等操作,ActivityMainBinding這個類就直接能用了,竟然還有這種操作?其實是Android Studio 這個IDE自動幫我們做了這一步,在預設情況下,系統會使用Android Studio為我們自動生成databinding相關的代碼,但是這種方式生成的代碼不能調試,如果你想通過點選ActivityMainBinding跳轉到它的源碼中,你會發現并不能如你所願,而是會跳轉到對應的布局檔案中。那麼如果我們确實要檢視ActivityMainBinding的源碼并且還想調試,我們就需要通過另外一種方式:手動編譯代碼。這兩種方式可以通過Android Studio的設定面闆修改。

符号轉義

在我們使用過程中,有些地方是需要使用轉義字元的,如:

DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  
DataBinding的使用(一)使用注意細節目錄fa 背景和使用限制DataBinDing的優點如何配置符号轉義  

這樣會報編譯錯誤,我們需要将<>進行轉義表示

顯示結果 描述 轉義字元 十進制
空格 &nbsp; &#160;
< 小于号 &lt; &#60;
> 大于号 &gt; &#62;
& 與号 &amp; &#38;
" 引号 &quot; &#34;
撇号 &apos; &#39;
× 乘号 &times; &#215;
÷ 除号 &divide; &#247;

與DataBinding技術類似的方法還有ViewBinding、Rxbinding。

`該篇部落格純屬個人觀點和見解,如有錯誤懇請留言指正,萬分感激!`

繼續閱讀