<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          MVVMFrameworkAndroid MVVM 框架

          聯(lián)合創(chuàng)作 · 2023-09-25 03:07

          這是一個搭建MVVM模式極速開發(fā)庫,DataBinding 和 Retrofit 配合使用搭建的快速框架。

          環(huán)境

          AndroidStudio 2.1

          MVVM模式

          MVVM模式:View,ViewModel,Model,三者關系如上圖。 Android 的MVVM模式:View 在 大多情況下是指 Activity,也因為很多操作需要用到Context,Activity也充當 Controller 的角色,很多人喜歡把邏輯寫在Activity中也是這個原因。在我眼里,MVVM模式解讀應該是 Activity是View和分發(fā)器,邏輯處理等寫在ViewModel 中需要分發(fā)的時候回調給Activity分發(fā),而數(shù)據(jù)則是Model提供,大多數(shù)情況下Model是數(shù)據(jù)固定后不用改變的。這才是真正的MVVM模式。

          Databinding的出現(xiàn)使得上面的假設成立,初試Databinding發(fā)現(xiàn)大大簡便了開發(fā),加上現(xiàn)在支持雙向綁定,實在是太棒了。

          超高速搭建MVVM模式的庫

          目前MVVM模式的項目還不多,大多都是MVC,MVP模式,對于Android 的MVVM模式的架構應該怎么搭建,怎么使用,這方面完整的知識并不多見。在此拋磚引玉,提出一個方案。 Databinding可以跳過Activity的findViewById直接和xml中控件進行雙向綁定,對于數(shù)據(jù)顯示帶來了大大的便利。我們大多數(shù)項目中列表占了很重要的一環(huán),其中列表數(shù)據(jù)綁定、刷新、加載更多、點擊響應、狀態(tài)顯示都是常用而且可以封裝起來的。 而對于網(wǎng)絡庫,我使用了Retrofit ,返回同一了JSON格式:{“status”:0,”msg”:”提示消息”,”content”:{}}  ,其中 content 里面數(shù)據(jù)如果是列表則是 JSONArray,非列表則是JSONObject。 兩者相配合,實現(xiàn)了快速從網(wǎng)絡獲取數(shù)據(jù)并顯示:

          只需兩句話就能完成 加載網(wǎng)絡數(shù)據(jù)后綁定數(shù)據(jù)并顯示

              public Call<HttpResult<List<Model>>> onLoadListHttpRequest();
              public void setItemLayout(int itemLayout);
          瀏覽 27
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  日韩中文字幕在线视频 | 成人少妇视频 | 超碰人人色 | 亚洲无码一区二区电影 | 欧美操逼视|