• Stars
    star
    3,618
  • Rank 12,197 (Top 0.3 %)
  • Language
    Java
  • Created over 5 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

即使不用饿了么订餐,也请务必收藏好该库!🔥 一行代码即可接入,二级联动订餐列表。

真香警告:即使不用饿了么订餐,也请务必收藏好该库!

由来

Linkage-RecyclerView 是一款基于 “MVP 架构(依赖倒置原则)” 开发的二级联动列表控件。它是因 “RxJava 魔法师” 项目需求而存在。

最初寻遍 GitHub 也未找到合适开源库,于是决定另起炉灶,编写 高度解耦、轻松配置、可通过 Maven 仓库远程依赖 的真正第三方库。

Linkage-RecyclerView 个性化配置十分简单,依托于 MVP “配置解耦” 特性,使用者无需研究内部逻辑,仅通过实现 Config 类即可完成功能定制和扩展。

此外,在不设置自定义配置情况下,Linkage-RecyclerView 最少只需 一行代码即可运行

RxJava Magician Eleme Linear Eleme Grid
7.gif 2.gif 3.gif

 

目标

Linkage-RecyclerView 目标是:一行代码即可接入二级联动列表

除一键接入省去 99% 不必要复杂重复工作外,您还可从该项目获得内容包括:

  1. 整洁代码风格和标准资源命名规范。
  2. MVP 架构在编写第三方库的最佳实践:使用者无需了解内部逻辑,简单配置即可使用
  3. 优秀代码分层和封装思想,在不做任何个性化配置情况下,一行代码即可接入。
  4. 主体工程基于前沿 Jetpack 组件。
  5. AndroidX 和 Material Design 2 全面使用。
  6. ConstraintLayout 约束布局最佳实践。
  7. 绝不使用 Dagger,绝不使用奇技淫巧、编写艰深晦涩代码。

如果您正考虑 如何为项目挑选合适架构,这项目值得你参考!

 

简单使用:

1.在 build.gradle 添加依赖。

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

提示:本库托管于 Maven Central,请自行在根目录 build.gradle 添加 mavenCentral()

2.依据默认分组实体类 DefaultGroupedItem 结构准备一串数据。此处以 JSON 为例:

// DefaultGroupedItem.ItemInfo 包含三个字段:
String title //(必填)二级选项的标题
String group //(必填)二级选项所在分组的名称,要和对应的一级选项的标题相同
String content //(选填)二级选项的内容
[
  {
    "header": "优惠",
    "isHeader": true
  },
  {
    "isHeader": false,
    "info": {
      "content": "好吃的食物,增肥神器,有求必应",
      "group": "优惠",
      "title": "全家桶"
    }
  },
  {
    "header": "热卖",
    "isHeader": true
  },
  {
    "isHeader": false,
    "info": {
      "content": "爆款热卖,月销超过 999 件",
      "group": "热卖",
      "title": "烤全翅"
    }
  }
]

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.得到数据后,最少只需一行代码即可完成初始化。

linkage.init(items);

 

温馨提示:

1.实际开发中,项目数据或与本库数据 “结构上存在差异”,故通常做法是,从后端拿到和解析项目 JSON 数据,并对该数据进行遍历。在遍历过程中,实例化并装载 “本库实体类对象” 到列表中,以获本库所能使用的列表数据。(具体可参见 CustomJsonSampleFragment 示例)

2.注意:如后端直接使用本库实体类读写 JSON 数据,请在 ProGuard Rules 中为该实体类配置混淆白名单:

-keep class com.kunminx.linkage.bean.** {*;}

 

更多

更多自定义操作详见 Wiki 解析

 

Thanks to

material-components-android

AndroidX

 

My Pages

Email:[email protected]

Juejin:KunMinX 在掘金

 

License

Copyright 2018-present KunMinX

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

More Repositories

1

Jetpack-MVVM-Best-Practice

难得一见 Jetpack MVVM 最佳实践!在 "以简驭繁" 代码中,对 "视图控制器" 乃至 "标准化开发模式" 形成正确、深入理解!
Java
8,626
star
2

UnPeek-LiveData

LiveData 数据倒灌:别问,问就是不可预期 - Perfect alternative to SingleLiveEvent, supporting multiple observers.
Java
1,123
star
3

Jetpack-MVVM-Scaffold

人生苦短,让脚手架为你节省时间。(目前作为《最佳实践》项目的 Dev 版优先更新)
Java
985
star
4

RxJava3-Operators-Magician

你用不惯 RxJava,只因缺了这把钥匙 🔑
Java
921
star
5

Jetpack-MusicPlayer

Json 数据驱动,音乐播放组件
Java
821
star
6

VIABUS-Architecture

让 Android 开发可以像流水线一样高效的 “职责分离架构” ⚡ 不同于 MVP 的配置解耦,也非 MVVM-Clean,VIABUS 是世界范围内首个明确提出 “通过职责分离” 真正实现 UI 和业务并行开发的 Android 业务架构和设计模式理念。
Java
485
star
7

MVI-Dispatcher

简明易用框架,解决 MVI 实战痛点
Java
282
star
8

Relearn-Android

重学安卓:你是想在含糊、冗长的网文中痛苦地打滚,还是跟随我的文字呼吸新鲜的空气?🔥
Java
265
star
9

Smooth-Navigation

提供流畅的 Jetpack Navigation 转场体验。并解决 GitHub 上 Navigation Add Hide 修改版普遍存在的缺陷。
Java
250
star
10

MVI-Dispatcher-KTX

简明易用框架,解决 MVI 实战痛点
Kotlin
153
star
11

Strict-DataBinding

善用 DataBinding 彻底解决 “View 实例的 Null 安全一致性问题”
Java
94
star
12

PUA-Immunity

致创作者:免疫 “网络暴力和打压” 的 高频认知补丁
Java
80
star
13

KeyValueX

消除 Android 项目 Key-Value 样板代码
Java
74
star
14

SealedClass4Java

让 Java 1.8 也能像 Kotlin 一样使用 Sealed Class。Make Java 1.8 use Sealed Class like Kotlin
Java
11
star
15

kunminx.github.io

KunMinX's Blog
HTML
5
star
16

KunMinX

3
star