如何在Android中的RecyclerView(GridLayoutManager)中减小列之间的间距

6 浏览
0 Comments

如何在Android中的RecyclerView(GridLayoutManager)中减小列之间的间距

我在我的应用程序中使用recyclerview的GridLayoutManager来显示自定义图库。我已经实现了所有的图库功能。但是,有一件小事让我困扰。在一行中,我有3张图片。但是我需要减少图片之间的间距。在这样做的同时,我不想在一行中显示超过3张图片,但是图片的大小(如果需要的话)可以增加。

0
0 Comments

如何在Android中减少RecyclerView(GridLayoutManager)中列之间的间距

在RecyclerView中使用以下代码:

this.mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 3));
this.mRecyclerView.addItemDecoration(new HorizontalDividerItemDecoration.Builder(getContext())
        .color(Color.DKGRAY)
        .build());
this.mRecyclerView.addItemDecoration(new VerticalDividerItemDecoration.Builder(getContext())
        .color(Color.DKGRAY)
        .build());

在布局文件中的每个项目中,将图片设置为与容器的边缘相匹配,例如:


    

并将以下内容添加到build.gradle文件中:

compile 'com.yqritc:recyclerview-flexibledivider:1.2.4'

如果您遇到“无法解析HorizontalDividerItemDecoration.Builder和VerticalDividerItemDecoration.Builder”的问题,说明您忘记添加依赖项。请确保已添加正确的依赖项。

0
0 Comments

问题出现的原因是在RecyclerView的GridLayoutManager布局中,列之间存在间距。解决方法是使用RecyclerView的ItemDecoration类,并在getItemOffsets方法中将outRect设置为空。

下面是解决方法的代码:

RecyclerView.ItemDecoration divider = new RecyclerView.ItemDecoration(){
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        outRect.setEmpty();
    }
};
grid.addItemDecoration(divider);

通过添加这段代码,可以将列之间的间距去掉。

0
0 Comments

问题的原因是在Recycler View的GridLayoutManager布局中,列之间的间距过大。解决方法是使用自定义的RecyclerViewItemDecorator类,并将其添加到RecyclerView中。

首先创建一个RecyclerViewItemDecorator类,继承自RecyclerView.ItemDecoration。在该类中,通过设置getItemOffsets方法来设置每个item的偏移量,包括左右、上下间距。如果是第一个item,则设置上边距。

然后,将RecyclerViewItemDecorator类添加到RecyclerView中。可以在RecyclerView初始化的代码中,调用addItemDecoration方法,并传入RecyclerViewItemDecorator的实例作为参数。可以根据需要设置间距的大小,以像素为单位。

希望能对你有所帮助!

0