php短视频源码之瀑布流分割线左右间距问题及解决代码

admin3年前PHP教程87

下面展示一下非瀑布流的item布局情况,每个item的高度都是一样的,所以
他的index就是左右左右,position所对应的itemView就是准确的,
左0,右1,左2,右3,以此类推…
这时候我们可以用下面代码即可成功设置分割线。

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
 
* 第一列设置左边距为space,右边距为space/2 (第二列反之)
 
*/
 
if (parent.getChildLayoutPosition(view) % 2 == 0) {
 
outRect.left = space;
 
outRect.right = space / 2;
 
} else {
 
outRect.left = space / 2;
 
outRect.right = space;
 
}

瀑布流的position是根据列的高度哪个小而来加载下一个position在哪里,
上面瀑布流图我们可以看到,左0,右1 之后,2到右边了,那是因为
第二列的高度小于第一列的高度,所以就加载到第二列,以此类推,
下面的高度可以说就是随机展示的,谁也不知道接下来要怎么判断分割线,
所以用上面的那些代码是行不通的,
大招来了,我们可以通过StaggeredGridLayoutManager.LayoutParams
里的getSpanIndex()来判断,这个方法不管你高度怎样,
他都是左右左右开始排列的,如下代码。

2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams();
/**
* 根据params.getSpanIndex()来判断左右边确定分割线
* 第一列设置左边距为space,右边距为space/2 (第二列反之)
 
*/
 
if (params.getSpanIndex() % 2 == 0) {
 
outRect.left = space;
 
outRect.right = space / 2;
 
} else {
 
outRect.left = space / 2;
 
outRect.right = space;
 
}

到此这篇关于php短视频源码之瀑布流分割线左右间距问题及解决代码的文章就介绍到这了,更多相关php短视频源码内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

gpu服务器如何使用?香港GPU服务器用途是什么?

传统的计算机服务已经满足不了日益增长的需求,如今是大数据、云计算时代,所以众多企业会选择云服务来节约成本,提升业务。对于大数据的云计算服务,需要高端服务器的支持,才能更好的运行和维护,其中gpu服务器...

GPU服务器的主要应用韩国gpu服务器租用价格多少钱一台

GPU服务器的主要应用?1、GPU(图形处理单元)专为并行处理而设计,可用于广泛的应用程序。它们以其在创意制作方面的能力而闻名,但在机器学习等非图形任务中越来越受欢迎。主要选项如下:3D建模、矿业、流...

PHP随机生成用户信息实例分析

本文给大家介绍如何随机生成用户信息(号码、名字、时间),希望对需要的朋友有所帮助!随机生成号码?123456789101112131415161718192021function generate_n...

哪些企业需要租用新加坡大带宽服务器

哪些企业需要租用新加坡大带宽服务器?以下是一些需要租用新加坡大带宽服务器的企业或组织:大型网站:需要高速互联网连接、高带宽和高可用性,以提供更好的用户体验和更高的访问速度。网络游戏公司:需要高速互联网...

韩国高防服务器抗攻击防御ddos

韩国高防服务器抗攻击防御ddos?韩国高防服务器具有出色的抗攻击防御DDoS能力。DDoS攻击是一种通过向目标服务器发送大量的请求来耗尽其网络资源和带宽的攻击方式,以达到瘫痪目标服务器的效果。韩国高防...

PHP导出数据超时的优化建议

一般情况下,导出超时可能都是以下三种情况:  一、sql语句复杂,查询时间过长;  二、处理查询后数据逻辑冗余;  三、数据量过大导致响应超时。接下来分别给出这三种情况的优化建议。一、sql语句复杂,...