在 GridLayoutManager 中的两列之间划分宽度

Sal*_*ian 6 android android-layout gridlayoutmanager android-recyclerview

我用作GridLayoutManager我的回收站视图的布局管理器。

  mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2));
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此处输入图片说明

但我想等分两列之间的宽度。我怎样才能做到这一点?

Ten*_*nce 7

尝试在您的recyclerView

mRecyclerView.addItemDecoration(new RecyclerView.ItemDecoration() {
        @Override
        public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {
            int position = parent.getChildAdapterPosition(view); // item position
            int spanCount = 2;
            int spacing = 10;//spacing between views in grid

            if (position >= 0) {
                int column = position % spanCount; // item column

                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 = 0;
                outRect.right = 0;
                outRect.top = 0;
                outRect.bottom = 0;
            }
        }
    });
Run Code Online (Sandbox Code Playgroud)