Android GridLayoutManager even row spacing --> Android网格布局管理器均匀行间距
创始人
2024-08-14 03:00:18
0

要实现Android GridLayoutManager的均匀行间距,可以通过自定义ItemDecoration来实现。以下是一个解决方法的代码示例:

public class GridSpacingItemDecoration extends RecyclerView.ItemDecoration {
    private int spanCount;
    private int spacing;
    private boolean includeEdge;

    public GridSpacingItemDecoration(int spanCount, int spacing, boolean includeEdge) {
        this.spanCount = spanCount;
        this.spacing = spacing;
        this.includeEdge = includeEdge;
    }

    @Override
    public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
        int position = parent.getChildAdapterPosition(view); // item position
        int column = position % spanCount; // item column

        if (includeEdge) {
            outRect.left = spacing - column * spacing / spanCount; // spacing - column * ((1f / spanCount) * spacing)
            outRect.right = (column + 1) * spacing / spanCount; // (column + 1) * ((1f / spanCount) * spacing)

            if (position < spanCount) { // top edge
                outRect.top = spacing;
            }
            outRect.bottom = spacing; // item bottom
        } else {
            outRect.left = column * spacing / spanCount; // column * ((1f / spanCount) * spacing)
            outRect.right = spacing - (column + 1) * spacing / spanCount; // spacing - (column + 1) * ((1f /    spanCount) * spacing)
            if (position >= spanCount) {
                outRect.top = spacing; // item top
            }
        }
    }
}

使用该自定义的ItemDecoration来设置RecyclerView的间距:

int spanCount = 2; // 列数
int spacing = 10; // 间距
boolean includeEdge = true; // 是否包含边缘

RecyclerView recyclerView = findViewById(R.id.recyclerView);
GridLayoutManager layoutManager = new GridLayoutManager(this, spanCount);
recyclerView.setLayoutManager(layoutManager);
recyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, includeEdge));

在上述代码中,可以根据需要调整spanCount、spacing和includeEdge的值,以实现不同的间距效果。

相关内容

热门资讯

黑科技攻略!钱塘十三水辅助器!... 黑科技攻略!钱塘十三水辅助器!一贯存在有开挂辅助软件(有挂教学)-哔哩哔哩1、玩家可以在钱塘十三水辅...
做出回应!泸州大二实战技巧!好... 做出回应!泸州大二实战技巧!好像存在有开挂辅助攻略(真是有挂)-哔哩哔哩该软件可以轻松地帮助玩家将泸...
黑科技代打!微信天天真人小程序... 黑科技代打!微信天天真人小程序辅助器!真是存在有开挂辅助插件(有挂实锤)-哔哩哔哩黑科技代打!微信天...
为切实保障!老友广东潮汕软件!... 为切实保障!老友广东潮汕软件!确实是有开挂辅助器(有挂实锤)-哔哩哔哩1、实时老友广东潮汕软件透视辅...
为了进一步!德州局透视脚本下载... 您好,德州局透视脚本下载安装最新版本这款游戏可以开挂的,确实是有挂的,需要了解加去威信【485275...
据通报!唐山撸麻雀德技巧!切实... 据通报!唐山撸麻雀德技巧!切实存在有开挂辅助器(详细教程)-哔哩哔哩1、上手简单,内置详细流程视频教...
此事引发广泛关注!微乐降序自建... 此事引发广泛关注!微乐降序自建房辅助app!果然真的有开挂辅助挂(有挂教学)-哔哩哔哩;1、玩家可以...
据报道!友友联盟辅助器!好像存... 据报道!友友联盟辅助器!好像存在有开挂辅助方法(新版有挂)-哔哩哔哩1、玩家可以在友友联盟辅助器线上...
现就发布提示!皮皮跑胡子系统有... 现就发布提示!皮皮跑胡子系统有鬼!一直是真的有开挂辅助挂(有人有挂)-哔哩哔哩1、进入游戏-大厅左侧...
技巧辅助挂!茶馆游戏辅助!好像... 技巧辅助挂!茶馆游戏辅助!好像存在有开挂辅助神器(有挂总结)-哔哩哔哩1、这是跨平台的茶馆游戏辅助轻...