Android recycleview瀑布流中间穿插一行占满一屏
背景:
我们在开发过程中,经常会混合不同的style view展示,对不同的内容有着不同的要求。列表是提供容易的view。在Android中,recycleview支持多样化的线上,但是我们会发现,布局的样式基本都被layoutmanager管理者,设置好布局manager,就无法展示多样化,这样很不利于我们的开发过程。
需求:
我们在开发过程中,往往需要处理这些,比如:我们在瀑布流的manager中,需要占用一行来显示我们其他的东西,如下图所示:
瀑布流现在有五条数据:A、B、C、D、E。这是一个瀑布流,瀑布流是左右排队,C需要单独占领一行,这个怎么处理么
只需要重写RecycleView.Adapter的onViewAttachedToWindow(ViewHolder)的方法。
这里会涉及到一个getItemViewType():
我们正常都是支持一种类型,
也就是在onCreateViewHolder方法,创建ViewHolder只创建一个,默认itemType的值为0.
如果你的数据源对应好多种数据类型,可以为每种创建一个ViewHolder样式,就可以通过这样。
比如一片文章:有标题、有文字段落、有图片、有视频、有引用。
我们可以定义五种类型,这样就组建一篇完整的数据类型。
所以在onViewAttachedToWindow中,是view添加到窗口时,获取当前view的位置,如果这个位置的type是需要占一屏的,直接设置
StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) holder.itemView.getLayoutParams();
params.setFullSpan(true);
setFullSpan(true):这个Span(一栏)填满全屏,其他的还是瀑布流展示。这样可以做到多样化显示。
Android recycleview瀑布流中间穿插一行占满一屏相关推荐
- 不固定图片宽高瀑布流_图片横向等高瀑布流,每行占满,限制行数 的实现
图片的横向瀑布流,其实简单地按顺序排列就可以了 但要实现每行中各图片都等高(各行不一定等高,但每行里面等高),且每行都占满,就需要用到flex的特性了 控制每行图片高度都一致,可能会影响图片的比例,所 ...
- 【Android 应用开发】Android中使用ViewPager制作广告栏效果 - 解决ViewPager占满全屏页面适配问题
. 参考界面 : 携程app首页的广告栏, 使用ViewPager实现 自制页面效果图 : 源码下载地址: http://download.csdn.net/detail/han1202 ...
- 有道云笔记设置界面 占满全屏(右侧)
有道云笔记设置界面 占满全屏(右侧) 其实是叫视角,但是一般查询的时候不会查这个词语吧 总之一开始是阅读视角,界面窄一点 普通视角会宽一点吧
- Dialog 宽度占满全屏
转载自:https://blog.csdn.net/sydmobile/article/details/83588708 Dialog 宽度占据全屏 关于如何自定义设置 Dialog 的大小,以及如何 ...
- 如何div高度占满全屏无滚动条
如何div高度占满全屏无滚动条 <!DOCTYPE html> <html><head><meta charset="UTF-8"> ...
- Android 实现瀑布流的两种思路
瀑布流怎么样我就不多介绍了.下面说说我想到的两个方法. 方法一,控件的叠加: ScrollView+LinearLayout.在ScrollView里面加一个水平方向的LinearLayout,在水平 ...
- css3 的 calc()函数在布局中的使用----头部高度固定,页面正好占满一屏
最近项目遇到一个布局需求,头部高度固定,页面需要刚好占满一屏幕. 如下示意图: 方法:使用calc .wrap{position: relative;margin-left: 24px;margin- ...
- recycleView瀑布流
首先几个关键资源 activity adapter item item中采用图片加文字的形式 大致这样: adapter 中需要去写一个动态分配高度的方法 入参的mlist是集合的长度 ...
- 黑马商城项目级联选择占满全屏解决方案
在全局样式的css中添加一下面样式即可 .el-scrollbar__wrap {height: 300px !important }
最新文章
- 混合云备份利用自定义Workflow保护MySQL的实践
- 重启centOS丢失nginx.pid导致无法启动nginx的解决方法
- Qt creator自定义编译运行步骤
- 窗体的ControlBox属性
- c语言程序设计dowhile,(C语言while、dowhile、for循环课程5.docx
- 轻量级KVO ——》 KVO 管理 observeValueForKeyPath
- PooledDirectByteBuf源码分析
- InteliJ IDEA生成可执行jar运行提示没有主清单属性
- sonnar检查出没有的方法_你有没有定期检查轮胎?它还能换位置,真是“经济”宝藏方法...
- 带你认识Oracle索引类型(全面总结)
- 西门子1200PLC(入门)2
- 速读原著-TCP/IP(互联网与实现)
- 腾达ap设置说明_腾达(Tenda)F9无线路由器AP模式怎么设置[教程]?【图解】
- 霍纳法则(Horner Rule)--计算多项式的值
- 面试现场说要轮岗,实际岗位是地推
- 【MapReduce】综合案例
- 驭势科技无人驾驶技术走向海外,AI国潮获赞满满
- python中concat的用法_pandas中concat()的用法
- yolov3运行及保存检测视频(包括摄像头)
- 将CSS文件转换为标准格式
热门文章
- python去哪里找工作比较好_Python学到哪水平可去找工作?没工作经验没学历怎么找?我教你...
- 使用VBA批量向Excel插入图片
- vux 选择器_Picker 组件使用教程 - VUX 中文文档
- 03 ts类型缩小,函数
- 重磅!华为正式出售荣耀,不再持有任何股份
- scipy.spatial.distance.cdist函数
- 热血江湖按键精灵脚本游戏!
- Debain10忘记root用户密码怎么办
- java银联接口代码_银联接口测试——详细(JAVA)
- 近代以来中华民族面临的两大历史任务及其相互关系是什么?