android 区域交错,如何确定交错网格布局管理器中的列位置

Tooroop..

35

我设法让它运作起来.所以在我的情况下,我不需要在屏幕的左右边缘有任何边框.我只需要中间和底部的边框.解决方案是获取StaggeredGridLayoutManager.LayoutParams类型的视图的布局参数.在这些参数中,您可以获取spanIndex,它告诉您视图的索引.因此,如果spanCount为2,则左视图的spanIndex为0,右视图的spanIndex为1.

这是我的代码所以它可能对你有所帮助

public class SpaceItemDecoration extends RecyclerView.ItemDecoration {

private int space;

public SpaceItemDecoration(int space) {

this.space = space;

}

@Override

public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

int position = parent.getChildAdapterPosition(view);

StaggeredGridLayoutManager.LayoutParams lp = (StaggeredGridLayoutManager.LayoutParams)view .getLayoutParams();

int spanIndex = lp.getSpanIndex();

if(position > 0){

if(spanIndex == 1){

outRect.left = space;

} else{

outRect.right = space;

}

outRect.bottom = space * 2;

}

}

}

在我的情况下,首先我必须得到位置,因为在索引0我有一个没有任何边框的标题视图.之后我得到了span索引,并根据它设置了我在该视图上需要的边框.最后,我在每个视图上设置了底部边框.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值