Android.StaggeredGridLayoutManager确定单元格所处行或列的位置
创始人
2024-08-20 03:00:12
0

StaggeredGridLayoutManager 不同于 GridLayoutManager,它可以让单元格的宽度或高度有所不同。因此,我们需要确定一个单元格的位置,即所处的行或列以及它在该行或列的位置。我们可以使用 getSpanIndex() 方法来实现。

例如,当我们需要为一个单元格设置布局参数时,我们可以将它添加到 StaggeredGridLayoutManager 中,并使用 getSpanIndex() 方法来确定它所处的列:

StaggeredGridLayoutManager.LayoutParams params = (StaggeredGridLayoutManager.LayoutParams) viewHolder.itemView.getLayoutParams();
params.setFullSpan(false);
params.width = itemWidth;
params.height = itemHeight;
params.setMargins(margin,margin,margin,margin);
params.spanIndex = layoutManager.getSpanSizeLookup().getSpanIndex(position, spanCount);

在上面的代码中,我们从 ViewHolder 中获取布局参数,设置宽度、高度、边距等参数,然后使用 getSpanSizeLookup() 方法来获取单元格所处列的位置。getSpanSizeLookup() 方法返回一个 SpanSizeLookup 对象,它提供了 getColumnSpan() 和 getSpanIndex() 两个方法,它们都需要两个参数:position 表示当前单元格的位置,spanCount 表示列数。getColumnSpan() 方法可以返回当前单元格的跨度,而 getSpanIndex() 方法可以返回它所处列的位置。

在 StaggeredGridLayoutManager 中,每次添加一个单元格时,会根据它的宽度或高度来确定它所处的行或列。如果当前列已满,它会跳到下一列。使用 getSpanIndex() 方法,我们可以在添加完一个单元格后得到它的位置,并根据需要设置其它属性。

相关内容

热门资讯

分辨真假!竞技联盟透视插件,p... 这是一款非常优秀的竞技联盟透视插件 ia辅助检测软件,能够让你了解到竞技联盟透视插件中牌率当中全部隐...
最新通报!hhpoker万能辅... 最新通报!hhpoker万能辅助器,哈糖大菠萝有没有挂,微扑克教程(有挂辅助);小薇(透视辅助)致您...
一分钟揭秘!wepoker是不... 一分钟揭秘!wepoker是不是有人用挂,wepoker破解器激活码,详细教程(有挂攻略);玩家必备...
我来教大家!wepoker可以... 我来教大家!wepoker可以透视码,wepoker辅助器软件下载,玩家教程(有挂技巧);科技安装教...
一分钟了解!德普之星透视辅助插... 一分钟了解!德普之星透视辅助插件,wepokerplus开挂,AI教程(有挂软件)科技教程也叫必备教...
揭秘几款!wpk透视辅助方法,... 揭秘几款!wpk透视辅助方法,pokemmo脚本最新版,教你攻略(有挂透视);玩家必备必赢加哟《13...
一分钟了解!wepoker可以... 一分钟了解!wepoker可以开透视吗,德普之星透视辅助插件,线上教程(有挂攻略)1、玩家可以在德普...
发现玩家!WePoKer辅助器... 发现玩家!WePoKer辅助器,拱趴大菠萝挂哪里,实用技巧(有挂神器);玩家必备必赢加哟《13670...
一分钟了解!wepoker怎么... 一分钟了解!wepoker怎么获得好牌,wepoker辅助器软件下载,必胜教程(有挂技巧);大神普及...
一分钟秒懂!wepoker有辅... 一分钟秒懂!wepoker有辅助工具吗,智星德州有脚本吗,新2025教程(有挂技巧);1分钟了解详细...