当前位置: 首页 > 知识库问答 >
问题:

删除回收器视图网格布局中的默认间距

满博
2023-03-14

我正在使用StaggeredGridLayout管理器用于回收器视图

mStaggerGridLayoutManager = new StaggeredGridLayoutManager(2, StaggeredGridLayoutManager
                .VERTICAL);

现在,我想删除列和行之间的默认间距。类似于这张图片,但只有2列。

共有1个答案

潘国源
2023-03-14

你得玩弄边际。不是衬垫。

StaggeredGridLayoutManager为每个网格项设置“30dp”的默认边距。

可以按如下方式更改,

class StaggeredListDecoration extends RecyclerView.ItemDecoration {

    public StaggeredListDecoration() {

    }
    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        super.getItemOffsets(outRect, view, parent, state);
        BaseCard.CARD_TYPE viewType = (BaseCard.CARD_TYPE)view.getTag();
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).leftMargin = 0;
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).rightMargin = 0;
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).topMargin = 0;
            ((StaggeredGridLayoutManager.LayoutParams) view.getLayoutParams()).bottomMargin= 0;
    }
}
 类似资料:
  • 我在带有网格布局管理器的回收器视图中有一个卡片视图。我想删除卡片之间的空间,但也要保留卡片的特定宽度。 这是我的布局活动: 这是我的名片:

  • 我正在使用Recolyer视图和GirdLayout管理器创建总线布局 我的问题是间距问题,我正在根据行、列填充数据 我想在第3行和第2列的项目旁边的卧铺座位在第2行第0列,如图所示,我怎样才能移除那个空间,项目应该根据它的上项容纳。 这是回收视图 和座椅布局xml

  • 我一直在尝试使用此处的少量指导来实现带有RecyclerView的CollapsingToolbar:http://android-developers.blogspot.co.uk/2015/05/android-design-support-library.html 和这里的项目:https://github.com/chrisbanes/cheesesquare,我目前有以下布局: 来源如下

  • 当点击fab时,snack bar出现,为此我必须使用协调器布局将fab水平移动到snack bar上方。但现在回收器视图的前几个项目是不可见的。它只从项目3开始。能否有人帮助解决这一点和什么改变要做。提前谢谢!!

  • 我正在使用回收器视图显示具有多个视图的项目。每当我启动应用程序时,就会显示一些空白。正好等于我的列表项。我提供了截图,请浏览一下。 我想我的代码没有问题。下面是我的代码RecycerView 适配器代码 请帮帮我。谢谢。

  • 根据Building a RecolyerView LayoutManager文章,我已经为RecolyerView创建了自己的自定义布局管理器,但是由于现有的一些文档,我无法找到从布局管理器中强制RecolyView重建动画的方法(就像使用notifyItemInserted或notifyItemDeleted时的动画一样)。这些动画由recyclerView及其项目动画师控制,开发人员只能控制