V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
KunMinX
V2EX  ›  Android

联动 MVP:就算不用饿了么,也请不要错过这个库!

  •  
  •   KunMinX · 2019-05-09 19:47:10 +08:00 · 9043 次点击
    这是一个创建于 2025 天前的主题,其中的信息可能已经有所发展或是发生改变。

    由来

    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,绝不使用奇技淫巧、编写艰深晦涩的代码。

    如果你正在思考 如何为项目挑选合适的架构 的话,这个项目值得你参考!

    项目链接:https://github.com/KunMinX/LinkageRecyclerView

    5 条回复    2019-05-10 10:32:12 +08:00
    agdhole
        1
    agdhole  
       2019-05-09 19:56:03 +08:00 via Android
    性能如何?
    KunMinX
        2
    KunMinX  
    OP
       2019-05-09 20:34:01 +08:00
    @agdhole

    亲测 primary List 500 条、Secondary List 2500 条如诗般顺滑。

    且二级联动的交互场景,适用于 Primary < 50 条, Secondary < 200 条的情况。若是超出了,那首先从设计层面上就失去二级联动的意义了,不妨另请高明。
    KunMinX
        3
    KunMinX  
    OP
       2019-05-09 20:37:21 +08:00
    为方便查看,名称中间已加了一个 - ,
    项目链接已变为 : https://github.com/KunMinX/Linkage-RecyclerView
    stdnull
        4
    stdnull  
       2019-05-10 00:53:43 +08:00 via Android
    道理我都知道 但是这个跟饿了么有啥关系?!?!?!
    southsala
        5
    southsala  
       2019-05-10 10:32:12 +08:00
    已 star,去年遇到过这种需求...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2696 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 10:28 · PVG 18:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.