Git Product home page Git Product logo

crazysunj / multityperecyclerviewadapter Goto Github PK

View Code? Open in Web Editor NEW
767.0 29.0 120.0 170.97 MB

一个专注于RecyclerView优雅刷新(接管资源和数据源)、高灵活、低耦合、健壮性以及高效性的MVP模式库,支持大多数Adapter

Home Page: http://crazysunj.com/2017/08/14/MTRVA%E4%BD%BF%E7%94%A8%E8%AF%B4%E6%98%8E%E4%B9%A6/

License: Apache License 2.0

Java 100.00%
recyclerview adapter multitype diffutil mvp component

multityperecyclerviewadapter's Introduction

MTRVA

License API

一个专注于RecyclerView优雅刷新(接管资源和数据源来代理Adapter进行数据处理)的轻量级MVP模式库,让你更关注UI逻辑,对Adapter进行组件化封装(大型UI框架也可)效果更佳

架构

特点

  • 一行代码刷新(附动画)单个level(一个level可对应多个type)
  • 支持常规增删改查操作
  • 支持RecyclerView组件化
  • 支持异步,高频率,链式刷新,可扩展(如配合RxJava)
  • 单个level支持Loading(加载),Empty(空),Error(错误)页面切换
  • 单个level支持header,footer
  • 单个level支持展开和闭合(附动画)
  • 支持刷新生命周期回调
  • 异步差量计算数据,只刷新改动部分,对比算法可自定义
  • 支持动态注册资源(根据服务端返回数据解析注册,不再静态写死)

传送门

博客:http://crazysunj.com/

谷歌邮箱:[email protected]

QQ邮箱:[email protected]

版本记录

使用说明书

由于我们专注于数据处理使得复杂布局非常简单,但我们与UI是完全解耦,开发者可以定制各种UI(使用各种Adapter),每一种level相当于一个简单的Activity页面,想知道具体的用法,可以阅读文档;想知道具体效果,可以参考一下Demo。

注:本库已从jcenter迁移mavenCentral,请重新依赖,具体参考使用说明书

欢迎大家的star(fork)

如果大家有什么问题或者觉得哪里需要优化改进或者有新奇想法可以发我邮箱或者直接加我QQ387953660,大家一起来探讨

License

Copyright 2017 Sun Jian

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.

multityperecyclerviewadapter's People

Contributors

crazysunj avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multityperecyclerviewadapter's Issues

关于分组的实现

你好,请问下如果需要分组的话是得注册多个level?使用sticky必须得设置header对吗?

看了圈感觉还有点晕

entity必须得实现MultiHeaderEntity或者MultiTypeEntity?那就加个BaseEntity来实现,那么什么时候用MultiHeaderEntity?什么时候用MultiTypeEntity?以及entity中得指定id?之前一直是在用vlayout,但是局部刷新不好使。想看着作者的demo来移植到项目中,感觉还是蛋疼啊

使用GridLayoutManager再添加HeadView 第一行的spanSize会失效

我大概是这么判断的
final GridLayoutManager layoutManager = new GridLayoutManager(getContext(), 2, GridLayoutManager.VERTICAL, false);
layoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@OverRide
public int getSpanSize(int position) {
MutiTypeTitleEntity entity=adapter.getItem(position);
if (entity instanceof ItemEntity1){
return 1;
}
return layoutManager.getSpanCount();
});

在未给RecycleView添加HeadView的情况下分类的头能占满一行,但是添加了headview 第一个类型的标题就会和内容挤在一起

某个item中可能有几种布局,可以支持吗?

比如一个 RecyclerView 中包含 新闻, 购物 等几种 itemType,
然后在 新闻 item 中又会包含几种布局的类型(layout), 购物 item 中也会包含几种布局的类型(layout);
看示例代码中同一个item 中可以设置 head, content, foot 的布局文件, content 中可以再设置几个 layout 吗?

加油

一看就是做实际项目中总结出来的, 文档在完善些就好了。
以下这些依赖哪些是必须加的,哪些又是可选择的? 能说明以下吗?

compile project(libs.MTRVA_File)
compile project(libs.MTRVA_File_Anno)
annotationProcessor project(libs.MTRVA_File_Compiler)
compile libs.MTRVA_Anno
compile libs.MTRVA
apt libs.MTRVA_Compiler

使用成本较高

老实说,这个库应该可能比较优秀,但是光看使用说明书就感觉接入成本很高,要自己写不少文件,我只是需要一个类似ExpandableGridview的效果,能折叠,能设置列数,不卡顿,支持单数据刷新。找到这个库希望快速接入并修改成我自己想要的效果,结果发现需要处理的东西实在不少,而且貌似不支持动态设置level(可能没看完整)
作为一个库而言,需要用户关注的其实是配置,门槛尽可能低,实在没法低就搭个常用的台阶,比如实现常用的helper而不是作为例子仅供参考。建议未必合理,只是随口发发牢*

被README和仓库大小吓走了

仓库170M了无法想象没代理的人怎么clone的;
README 太简单了没有效果预览;
功能又强大到让人害怕稳定性;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.