mvvm架構(gòu),databinding實戰(zhàn)

l  最近項目采用mvvm架構(gòu)架構(gòu),確實能帶來很多方便,完全省去了 findViewById和監(jiān)聽對象,再加上雙向綁定,讓view層和model層完全解耦,讓我感到安卓開發(fā)原來也可以如此利落。當(dāng)然,也遇到了不少問題,面臨的第一個問題就是網(wǎng)上資料實在太少了,大部分博客只是一個簡單的demo介紹,對于在實際項目中應(yīng)用,自己還有太多的坑要填,我把自己在項目中自己遇到的問題總結(jié)在此,供大家參考。

資料分享:

mvvm架構(gòu)介紹——美團技術(shù)團隊 https://tech.meituan.com/android_mvvm.html, 美團這篇文章寫的比較新,可以說是作為我項目開發(fā)的指導(dǎo)思想,對mvvm的概念模糊了就重讀一遍此文。架構(gòu)總的來說就是圍繞開發(fā)和維護,如何更好的模塊劃分和功能解耦。
完全掌握Android Data Binding 15年寫, [http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0603/2992.html] Android Data Binding
(數(shù)據(jù)綁定)用戶指南 http://www.itdecent.cn/p/b1df61a4df77
Android DataBinding原理解析 http://blog.csdn.net/haizishiwo/article/details/51175145
官方文檔 https://developer.android.com/topic/libraries/data-binding/index.html#listener_bindings
github上的一個開源項目(非mvvm架構(gòu),但用了databinding)https://github.com/youlookwhat/CloudReader
github開源項目(三種架構(gòu)的demo)git@github.com:ivacf/archi.git,對mvvm初期的使用都是參考這個項目,包括在xml文件直接綁定viewModel的成員變量、監(jiān)聽方法,以及databing結(jié)合RecycleView的使用,但沒有涉及雙向綁定的使用。

遇到的問題:

1. databinding實現(xiàn)原理
  想要更好的使用mvvm架構(gòu)開發(fā)項目,首先要做的就是理解mvvm的架構(gòu)思想和databinding的實現(xiàn)原理。思想可以多參考美團那篇文章。這里對databinding的原理做簡單介紹,歡迎指正!
  databinding框架給我們生成了一個Binding類,類名為xml文件名換成頭峰命名再加上Binding,這個類保存了xml中定義的每個組件的引用和ViewModel的引用,通過對觀察者模式對ViewModel的成員變量進行監(jiān)聽,當(dāng)變量值發(fā)生改變時,binding馬上更新UI,從而免去了手動初始化組件和更新UI。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容