1、框架介绍:

基于recyclerView,可以实现比recyclerView更加复杂的网格列表布局;

2、github地址:https://github.com/lucasr/twoway-view

3、引用方式:

repositories {maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
}dependencies {compile 'org.lucasr.twowayview:core:1.0.0-SNAPSHOT@aar'compile 'org.lucasr.twowayview:layouts:1.0.0-SNAPSHOT@aar'
}

4、使用方式:

四种布局管理器:

ListLayoutManager,GridLayoutManager,StaggeredGridLayoutManager,SpannableGridLayoutManager。

前两种布局其实和recyclerView中的网格布局是没有区别的,故不多做介绍。如果只是简单的实现列表或网格布局,使用recyclerView的布局管理器即可;

StaggeredGridLayoutManager:

瀑布流布局管理器,和recyclerView中的瀑布流布局管理器的主要区别就是支持了布局的多列占用,而原生的recyclerView瀑布流管理器只能占据一列或者全屏。举个例子,如果想要实现一个竖向的瀑布流布局,共有5列,要求有的item项占据两列的宽度,此时如果使用原生的瀑布流管理器则就无法实现,而这个就可以。

设置方式:

StaggeredGridLayoutManager.LayoutParams lp = (StaggeredGridLayoutManager.LayoutParams) itemView.getLayoutParams();

// lp.span 可以设置专用的span数量

lp.span = span;

itemView.setLayoutParams(lp);

实现效果:

这里的第一张卡片的宽度就占据了两列的宽度。

SpannableGridLayoutManager:

SpannableGridLayoutManager继承GridLayoutManager,用法是一样的。
SpannableGridLayoutManager与StaggeredGridLayoutManager的区别在于,SpannableGridLayoutManager的item只能等高。
SpannableGridLayoutManager有点类似于表格,他可以设置合并的行数和列数。

设置方式:

SpannableGridLayoutManager.LayoutParams lp =  (SpannableGridLayoutManager.LayoutParams) itemView.getLayoutParams();
lp.rowSpan = 3;
lp.colSpan = 2;
itemView.setLayoutParams(lp);

实现效果:

从图中的效果上看,0的rowSpan =2, colSpan = 2,而3的位置 colSpan = 3, rowSpan = 2。

总结:

由上可知,twoway-view确实可以称之为recyclerView的扩展或者是加强版本。这个框架出来至今已经有六七年的时间了,在github上面的点赞数也有五千多,但是在实际项目使用过程中,配合上网络请求加载和刷新还是会有一些问题,这就需要开发者们自己去逐步调试并解决问题了。

复杂列表twoway-view的使用相关推荐

  1. 实战SSM_O2O商铺_37【商品】商品列表之View层的实现

    文章目录 概述 productmanagement.html productmanage.css productmanage.js 联调 Github地址 概述 在完成了后端的逻辑后,我们来实现商品列 ...

  2. 实战SSM_O2O商铺_24【商铺列表】View层开发

    文章目录 概述 商铺列表View层的开发 shoplist.html shoplist.js shoplist.css 通过商铺列表页面点击进入商铺的管理页面的开发 shopmanagement.ht ...

  3. 仿京东、饿了么 左右联动菜单列表自定义View

    仿京东.饿了么 左右联动菜单列表 这是一个左右联动的自定义View 这里本人将两个列表进行了联动封装,使用的时候调用方法即可,方便快捷,扩展性也强. 完整Demo传送门 效果图: 正题开始: 我们看一 ...

  4. android view.gone 动画,Android 模仿iPhone列表数据View刷新动画详解

    因为我本人很喜欢在不同的页面之间跳转时加点好玩的动画,今天无意间看到一个动画效果感觉不错,几种效果图如下:既然好玩就写在博客中,直接说就是:该效果类似于iPhone中View的切换动画效果,今天就只介 ...

  5. [转贴]Android研究院之模仿iPhone列表数据View刷新动画详解(十九)

    因为我本人很喜欢在不同的页面之间跳转时加点好玩的动画,今天无意间看到一个动画效果感觉不错,几种效果图如下:既然好玩就 写在博客中,直接说就是:该效果类似于iPhone中View的切换动画效果,今天就只 ...

  6. android基础--列表数据View刷新动画

    该效果类似于iPhone中View的切换动画效果 效果一: 效果二: 效果三: 效果四: 效果五(回旋效果一): 效果六(回旋效果二): 1 2 3 4 5 6 7 8 9 10 11 12 13 1 ...

  7. 实战SSM_O2O商铺_42【前端展示】店铺列表页面View层的实现

    文章目录 概述 代码结构 shoplist.html shoplist.js shoplist.css common.js添加解析日期的公共方法 FrontEndController添加路由 联调测试 ...

  8. Android列表视图(List View)

    Android列表视图(ListView) ListView是一个显示滚动项列表的示视图组(viewgroup),通过使用适配器(Adapter)把这些列表项自动插入到列表中.适配器比如从一个数组或是 ...

  9. DNS子域授权及view(三)

    一.DNS子域授权 1.创建子域的原因 当一个组织获得一个域后,比如:magelinux.com,但是由于组织规模扩大,需要分配出几个部门,例如技术部.财务部和销售部等.如果都使用magelinux. ...

  10. android 固定底部 布局_Android系统列表控件

    在android系统控件中,有多个控件可以展示列表数据. 一.ListView 该组件是android中最常用的一个UI组件,用于实现在屏幕上显示多个内容,以便于我们用手指进行滑动. ListView ...

最新文章

  1. c语言表达式的后缀,中缀表达式转换成后缀表达式C语言程序(一)
  2. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题
  3. mugen4g补丁如何使用_如何搜索下载游戏
  4. Silverlight RIA Servcie 删除子对象实体提交错误的问题[解决]
  5. mysql结果集相减_MySQL_(Java)使用JDBC向数据库发起查询请求
  6. TypeScript 乱糟笔记
  7. 读书笔记-01大型网站架构演化的价值观
  8. HDU5926 Mr. Frog’s Game
  9. 如何在网页中播放FLV文件的代码
  10. IntelliLock
  11. android zenmode 通知,【Android系统】Android M ZenMode(禅模式)分析(2)
  12. OPPO R9sPlus怎么刷机 OPPO R9sPlus的刷机教程 OPPO R9sPlus完美解除账号锁
  13. 实战PHP皮皮虾去水印解析接口
  14. 解决微信支付、微信一键登陆在安卓10以上无法调起问题
  15. 计算方法 差商与牛顿插值
  16. 浏览器兼容性和HTTP状态了解
  17. redis cluster C 客户端
  18. 每天学点英语语法-重头开始8
  19. 577. Employee Bonus
  20. html 禁止百度抓取,禁止百度收录方法是什么?

热门文章

  1. PodFest China发布首份《中文播客听众与消费调研》报告
  2. 路由选择协议在哪一层_米家智能插座背后的两种无线协议——Wi-Fi与ZigBee区别体现在哪?...
  3. Easyui 官网网址
  4. 如何在 Python 中执行 Ancova?
  5. 惯例的2020新年愿望目标
  6. ConvNet---20年代的卷积神经网络
  7. 鼎捷T100——利用自定义查询维护作业(azzi310)开发建立xg报表
  8. CentOS 卸载软件 libreoffice
  9. MapBox离线地图+python获取瓦片数据
  10. If-then结构控制介绍