没有ItemDecoration的StaggeredGridLayoutManager需要onScroll以矩阵/网格格式排列项目。有没有办法避免ItemDecoration,因为我不希望项目之间有装饰器。
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3,StaggeredGridLayoutManager.VERTICAL))
//Without addItemDecoration - it requires a scroll to occupy all the columns
recycler.addItemDecoration(new CustomInsetsDecoration(context));
没有项目装饰 -
A
B
C
D
E
F
项目装饰(分开最小1px / dp)
A B C
D E F
我想要的是什么:
ABC
DEF
A,B,C,D,E,F都是ImageViews(不同大小)
我的项目布局 - 非常简单 - relativelayout和Imageview:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/item_browse_cover"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop" />
</RelativeLayout>
任何输入都表示赞赏。 提前致谢。
答案 0 :(得分:0)
使用以下带有0边距的MarginDecorator
类
public class MarginDecorator extends RecyclerView.ItemDecoration {
private int margin;
public MarginDecorator(int margin) {
this.margin = margin;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.top = margin;
outRect.bottom = margin;
outRect.left = margin;
outRect.right = margin;
}
}
也可以尝试使用setGapStrategy()