我正在尝试制作recyclerview
,其中可以基于android中的ID在视图项上添加自定义边距
我尝试过使用具有不同视图的定制适配器,我们可以将其放在一个回收站视图中,但是我只需要一个视图,只想做的是在基于id的视图之间放置自定义边距。
if (category_detail.getId()==0){
ViewGroup.MarginLayoutParams marginLayoutParams =
(ViewGroup.MarginLayoutParams) rec_discount.getLayoutParams();
marginLayoutParams.setMargins(0, 500, 0, 0);
rec_discount.setLayoutParams(marginLayoutParams);
}
答案 0 :(得分:3)
您可以使用ItemDecoration来实现。
public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
private int space;
public SpacesItemDecoration(int space) {
this.space = space;
}
@Override
public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
outRect.left = space;
outRect.right = space;
outRect.bottom = space;
// Add top margin only for the first item to avoid double space between items
if(parent.getChildAdapterPosition(view) == 0) {
outRect.top = space;
}
}
}
这将在回收者视图的所有视图的左侧,右侧和底部添加“空格”像素的空白。您可以根据需要进行自定义。
要使用此类,您可以执行以下操作:
recyclerView.addItemDecoration(new SpacesItemDecoration(10));