我正在使用recyclerview的GridLayoutManager在我的应用程序中显示自定义画廊。我已经实现了所有功能,例如图库。但是我有一个小问题。在一行中,我有3张图片。但是我需要减少图像之间的空间。这样做时,我不想连续显示3张以上的图像,但是图像尺寸(如果需要)会增加。
最佳答案
您可以使用自定义RecyclerViewItemDecorator
:
public class RecyclerViewItemDecorator extends RecyclerView.ItemDecoration {
private int spaceInPixels;
public RecyclerViewItemDecorator(int spaceInPixels) {
this.spaceInPixels = spaceInPixels;
}
@Override
public void getItemOffsets(Rect outRect, View view,
RecyclerView parent, RecyclerView.State state) {
outRect.left = spaceInPixels;
outRect.right = spaceInPixels;
outRect.bottom = spaceInPixels;
if (parent.getChildLayoutPosition(view) == 0) {
outRect.top = spaceInPixels;
} else {
outRect.top = 0;
}
}
}
然后将其添加到您的
RecyclerView
中:// For example 10 pixels
int spaceInPixels = 10;
mRecyclerView.addItemDecoration(new RecyclerViewItemDecorator(spaceInPixels));
希望能帮助到你!