
我正在使用交错的回收站视图布局来获取照片列表.我希望两侧的间距为零,同时两列之间仍有空间.我正在使用项目装饰子类来获取附加照片中看到的间距.我知道我可以控制左右间距,但问题是我从来不知道照片所在的列.看起来交错的布局管理器会进行一些自己的重新排序.我尝试过使用getChildAdapterposition,但它似乎返回数据源数组中的位置,而不是布局中照片的实际位置.知道我应该如何处理这个问题吗?
解决方法:
我设法让它运作起来.所以在我的情况下,我不需要在屏幕的左右边缘上有任何边框.我只需要中间和底部的边框.解决方案是获取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;}@OverrIDepublic 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索引,并根据它设置了我在该视图上需要的边框.最后,我在每个视图上设置了底部边框.
总结以上是内存溢出为你收集整理的android – 如何确定交错网格布局管理器中的列位置全部内容,希望文章能够帮你解决android – 如何确定交错网格布局管理器中的列位置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)