快速利用RecyclerView的LayoutManager搭建流式布局

以前也写了一个ViewGroup版本的流式布局,该流式布局有两大优势:能够设置行数是否内容在该行中居中显示(猛戳),说真的自从对RecyclerViewLayoutManager有新的认识后,彻底不用担忧不少的复杂布局了。并且对ViewGroup测量过程也不用担忧了,由于里面有LayoutManager帮咱们实现了。下面就进入该篇文章的主题吧,废话很少说,直接上图更有说服力。java

simple.gif

上面的示例图是我把ItemView分别用了TextViewImageView。其实这些是没什么好说的,主要是如何定义这样的LayoutManager。相信你们都用过了LinearLayoutManager吧,系统提供的LayoutManager都是对齐的方式进行排版的,咱们这里的flow的样式就是在排版item以前,判断了该行多余的空间还够不够显示,若是不够直接换行显示的思路。git

使用:

详见TextFlowActivityDiffHeightTextFlowActivityPhotoFlowActivitygithub

RecyclerView recyclerView = (RecyclerView) findViewById(flow);
FlowLayoutManager flowLayoutManager = new FlowLayoutManager();
//设置每个item间距
recyclerView.addItemDecoration(new SpaceItemDecoration(dp2px(10)));
recyclerView.setLayoutManager(flowLayoutManager);
recyclerView.setAdapter(new FlowAdapter());
复制代码

常见商品属性界面(RV嵌套RV,item高度为wrap_content):bash

商品属性界面.gif

使用:见ProductActivityapp

常见悬浮商品属性界面(RV嵌套RV,item高度为wrap_content):maven

悬浮商品属性界面.gif

使用:见SuspensionProductActivity布局

动画修复问题: 测试

动画演示.gif

使用:见TextFlowActivitygradle

viewpager中流式布局应用: 动画

viewpager中流式布局.gif

使用:见ViewPagerActivity

添加RV嵌套RV高度为wrap_content不显示问题,请使用: NestedRecyclerView

添加长点击进入删除效果,点击外面进入正常模式:

长点击删除界面.gif
使用:见 LongClickDeleteTextFlowActivity

gradle依赖:

all projects {
	repositories {
		...
		maven { url 'https://jitpack.io' }
	}
}

dependencies {
        compile 'com.github.1002326270xc:LayoutManager-FlowLayout:v1.6'
}
复制代码

欢迎你们提出问题,留言板留言或邮箱直接联系我。我会第一时间测试相关的bug

欢迎客官到本店光临:184793647(qq群)

关于我:

email: a1002326270@163.com

csdn:enter

github:enter

相关文章
相关标签/搜索