即使不用餓了麼訂餐,也請務必收藏好該庫!

由來

LinkageRecyclerView 是一款基於 MVP 架構開發的二級聯動列表控件。它是因 “RxJava 魔法師” 這個項目的需求而存在。

在最初尋遍了 GitHub 也沒有找到合適的開源庫(高度解耦、可遠程依賴)之後,我決心研究參考現有開源項目關於二級聯動的邏輯,並自己動手編寫一個 高度解耦、輕鬆配置、可通過 maven 倉庫遠程依賴 的真正的第三方庫。

LinkageRecyclerView 的個性化配置十分簡單,依託於 MVP 的 “配置解耦” 特性,使用者無需知道內部的實現細節,僅通過實現 Config 類即可完成功能的定製和擴展。

此外,在不設置自定義配置的情況下,LinkageRecyclerView 最少只需一行代碼即可運行起來。

RxMagic Eleme Linear Eleme Grid
7.gif 2.gif 3.gif

目標

LinkageRecyclerView 的目標是:一行代碼即可接入二級聯動列表

除了一鍵接入而省去 99% 不必要的、複雜的、重複的工作外,你還可以從這個開源項目獲得的內容包括:

  1. 整潔的代碼風格和標準的資源命名規範。
  2. MVP 架構在第三庫中的最佳實踐:使用者無需瞭解內部邏輯,通過實現接口即可輕鬆完成個性化配置
  3. 優秀的代碼分層和封裝思想,在不做任何個性化配置的情況下,一行代碼即可接入。
  4. 主體工程基於前沿的、遵循關注點分離的 JetPack MVVM 架構。
  5. AndroidX 和 Material Design 2 的全面使用。
  6. ConstraintLayout 約束佈局的最佳實踐。
  7. 絕不使用 Dagger,絕不使用奇技淫巧、編寫艱深晦澀的代碼。

如果你正在思考 如何爲項目挑選合適的架構 的話,這個項目值得你參考!

簡單使用:

1.在 build.gradle 中添加對該庫的依賴。

implementation 'com.kunminx.linkage:linkage-recyclerview:1.2.0'

2.依據聯動實體類的結構簡單配置 json。

[
  {
    "header": "優惠",
    "isHeader": true
  },
  {
    "isHeader": false,
    "t": {
      "content": "好吃的食物,增肥神器,有求必應",
      "group": "優惠",
      "imgUrl": "https://upload-images.io/0a94.png",
      "title": "全家桶"
    }
  },
  {
    "header": "熱賣",
    "isHeader": true
  }
]
    

3.在佈局中引入 LinkageRecyclerView 。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <com.kunminx.linkage.LinkageRecyclerView
        android:id="@+id/linkage"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</LinearLayout>

4.在代碼中解析 json,並只用一行代碼完成初始化。

List<LinkageItem> items = gson.fromJson(...);

//一行代碼完成初始化
linkage.init(items);

個性化配置詳見:

項目鏈接:https://github.com/KunMinX/Linkage-RecyclerView

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