转自:http://stackoverflow.com/questions/28531996/android-recyclerview-gridlayoutmanager-column-spacing


RecyclerViews support the concept of ItemDecoration: special offsets and drawing around each element. As seen in this answer, you can use

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.getChildPosition(view) == 0)
        outRect.top = space;
  }
}
然后

mRecyclerView = (RecyclerView) findViewById(R.id.my_recycler_view);
int spacingInPixels = 8;
mRecyclerView.addItemDecoration(new SpacesItemDecoration(spacingInPixels));

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐