RecyclerView没有像GridView那样有提供verticalSpacing属性,上StackOverflow找到了一种替代方法,代码如下

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
    private int mVerticalSpacing, mHorizontalSpacing;

    public SpacesItemDecoration(int verticalSpacing, int horizontalSpacing){
        mHorizontalSpacing = horizontalSpacing;
        mVerticalSpacing = verticalSpacing;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.left = mHorizontalSpacing;
        outRect.right = mHorizontalSpacing;
        outRect.bottom = mVerticalSpacing;
        outRect.top = mVerticalSpacing;
    }
}

在RecyclerView中使用

int verticalSpacing = getResources().getDimensionPixelSize(R.dimen.my_items_grid_vertical_spacing);
int horizontalSpacing = getResources().getDimensionPixelSize(R.dimen.my_items_grid_horizontal_spacing);
recyclerView.addItemDecoration(new SpacesItemDecoration(verticalSpacing, horizontalSpacing));

 

相关文章:

  • 2021-11-15
  • 2021-08-10
  • 2022-12-23
  • 2021-10-06
  • 2021-05-13
  • 2022-01-19
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-10-19
  • 2021-12-21
  • 2022-12-23
  • 2021-10-17
  • 2022-12-23
相关资源
相似解决方案