android - 如何在 android 中的回收器 View (GridLayoutManager)中减少列之间的空间

标签 android android-layout android-recyclerview gridlayoutmanager

我正在使用 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));

希望对您有所帮助!

关于android - 如何在 android 中的回收器 View (GridLayoutManager)中减少列之间的空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36257126/

相关文章:

android - gradle 转换 API 范围的定义

java - 用于在 ANDROID 中切换元素的 XML 或 JAVA 代码

android - 图像在 viewflipper 中居中

android - Realm 查询不更新我的适配器

java - 如何在 Activity 之间传递双数组(boolean[][])?

Android 支持 Repo 46.0.0 和 Android Studio 2.3

android - 如何让customAdapter填充gridview高度

android - 在保持设备处于横向模式的同时打开应用程序时,纵向 Activity 对话框显示横向

java - Android RecyclerView 固定页脚

Android SectionedRecyclerViewAdapter 部分标题