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() 方法,我们可以在添加完一个单元格后得到它的位置,并根据需要设置其它属性。

相关内容

热门资讯

实操分享!相约十三张辅助,反杀... 实操分享!相约十三张辅助,反杀大厅辅助(有挂细节辅助下载);无需打开直接搜索薇:136704302 ...
盘点十款!四川途游麻将辅助,卡... 盘点十款!四川途游麻将辅助,卡农免费辅助(了解有挂辅助开挂软件)这是一款可以让一直输的玩家,快速成为...
一分钟揭秘!四川游戏家园破解,... 一分钟揭秘!四川游戏家园破解,天天开心王国怎么辅助(今日头条辅助平台);打开点击测试直接进入微信(1...
普及知识!都莱软件安装辅助,决... 普及知识!都莱软件安装辅助,决战卡五星最新辅助(确实有挂辅助开挂器);无需打开直接搜索薇:13670...
玩家攻略!酷玩联盟辅助,决胜辅... 玩家攻略!酷玩联盟辅助,决胜辅助(有挂解惑辅助开挂神器)1、下载安装好酷玩联盟辅助,进入游戏主界面,...
总算清楚!哈糖大菠萝助手,福建... 【亲,福建天天开心辅助工具视频 这款游戏可以开挂的,确实是有挂的,很多玩家在这款福建天天开心辅助工具...
揭秘真相!掌上悟空辅助最新版下... 大家好,今天小编来为大家解答掌上悟空辅助最新版下载这个问题咨询软件客服可以免费测试直接加微信(136...
今日重大通报!牵手跑得快辅助器... 您好:牵手跑得快辅助器下载这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户...
盘点一款!火神大厅辅助器,78... 您好:789大菠萝可以控制吗这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用...
玩家必看科普!花花生活圈怎么开... 玩家必看科普!花花生活圈怎么开挂,爱来大菠萝有挂吗(有挂细节辅助神器);无需打开直接搜索加(薇:13...