Android MVVM封装,MVVMFramework
軟件簡(jiǎn)介
這是一個(gè)搭建MVVM模式極速開發(fā)庫(kù),DataBinding 和 Retrofit 配合使用搭建的快速框架。
環(huán)境
AndroidStudio 2.1
MVVM模式
MVVM模式:View,ViewModel,Model,三者關(guān)系如上圖。 Android 的MVVM模式:View 在 大多情況下是指
Activity,也因?yàn)楹芏嗖僮餍枰玫紺ontext,Activity也充當(dāng) Controller
的角色,很多人喜歡把邏輯寫在Activity中也是這個(gè)原因。在我眼里,MVVM模式解讀應(yīng)該是
Activity是View和分發(fā)器,邏輯處理等寫在ViewModel
中需要分發(fā)的時(shí)候回調(diào)給Activity分發(fā),而數(shù)據(jù)則是Model提供,大多數(shù)情況下Model是數(shù)據(jù)固定后不用改變的。這才是真正的MVVM模式。
Databinding的出現(xiàn)使得上面的假設(shè)成立,初試Databinding發(fā)現(xiàn)大大簡(jiǎn)便了開發(fā),加上現(xiàn)在支持雙向綁定,實(shí)在是太棒了。
超高速搭建MVVM模式的庫(kù)
目前MVVM模式的項(xiàng)目還不多,大多都是MVC,MVP模式,對(duì)于Android
的MVVM模式的架構(gòu)應(yīng)該怎么搭建,怎么使用,這方面完整的知識(shí)并不多見。在此拋磚引玉,提出一個(gè)方案。
Databinding可以跳過(guò)Activity的findViewById直接和xml中控件進(jìn)行雙向綁定,對(duì)于數(shù)據(jù)顯示帶來(lái)了大大的便利。我們大多數(shù)項(xiàng)目中列表占了很重要的一環(huán),其中列表數(shù)據(jù)綁定、刷新、加載更多、點(diǎn)擊響應(yīng)、狀態(tài)顯示都是常用而且可以封裝起來(lái)的。
而對(duì)于網(wǎng)絡(luò)庫(kù),我使用了Retrofit ,返回同一了JSON格式:{“status”:0,”msg”:”提示消息”,”content”:{}} ,其中
content 里面數(shù)據(jù)如果是列表則是 JSONArray,非列表則是JSONObject。 兩者相配合,實(shí)現(xiàn)了快速?gòu)木W(wǎng)絡(luò)獲取數(shù)據(jù)并顯示:
只需兩句話就能完成 加載網(wǎng)絡(luò)數(shù)據(jù)后綁定數(shù)據(jù)并顯示
public?Call>>?onLoadListHttpRequest();
public?void?setItemLayout(int?itemLayout);
總結(jié)
以上是生活随笔為你收集整理的Android MVVM封装,MVVMFramework的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: android 8.0手机无法更新版本,
- 下一篇: 已经搭载华为鸿蒙,阿尔法S或将搭载华为鸿