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

在GridLayoutManager中划分两列的宽度

鲍钊
2023-03-14

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

  mRecyclerView.setLayoutManager(new GridLayoutManager(getContext(), 2));

但我想平分两列的宽度。我怎么能那样做?

共有1个答案

郑伟彦
2023-03-14

尝试在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;
            }
        }
    });
 类似资料:
  • 我正在使用JavaScript构建一个流体(html)网格。我喜欢使用bin-packing算法来排序网格项。网格应将列除以百分比或网格中给定的列数。 宽度:100px-3列(33.3333333333%) 33px34px33px 宽度:100px-8列(12.5%) 13px12px13px12px13px12px12px12px 宽度:99px-4列(25%) 25px25px24px25p

  • 问题内容: 我正在尝试建立一个具有三列的flexbox布局,其中左列和右列具有固定的宽度,而中间列可以弯曲以填充可用空间。 尽管设置了列的尺寸,但它们似乎仍会随着窗口缩小而缩小。 有人知道如何做到这一点吗? 我需要做的另一件事是基于用户交互隐藏右列,在这种情况下,左列仍将保持其固定宽度,而中间列将填充其余空间。 问题答案: 除了使用(这是使用flexbox时的建议)之外,您还可以使用以下方法: =

  • 我有4张桌子。对于这个问题,我将它们命名为tableA、tableB、tableC、tableD。 TableB看起来像这样:id、name、tag、some_other_parameters tableC看起来是这样的:id、代码、一些其他参数 表格列:id、tableA_id、tableB_id、tableC_id、entityVersion tableD中的列没有在实体中定义一对多、多对一关

  • 我使用布局管理器将此配置为: 我的具体情况是子项没有预定义的宽度。相反,我将它们的宽度设置为 然后我希望为每个项目提供1/3的可用空间。 到目前为止很好,但我希望,如果在最后一行只有1或2个项目显示,我想居中他们。 正如您在最后一行中看到的,这些项被拉到布局的边缘,父项的宽度在它们之间被分割。这是因为正如我所说的,它们的宽度不是预先确定的。 我所期望的是计算项目的宽度,因为它们显示为每行3个项目,

  • 我正在建立一个聊天网站,我有一个包含以下列的表,,,。 是聊天来源的用户的,而是聊天发送到的用户的。 现在我想获取所有聊天,但我也想分组,如果是我的id,它将按分组,如果是我的用户id,它将按分组,我尝试了这个分组,但它只是在和相同时才分组,我怎么也能让它反过来呢