- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
如何使用 GridLayoutManager 设置 RecyclerView 的列间距? 在我的布局中设置边距/填充无效。
最佳答案
以下代码运行良好,每列宽度相同:
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
}
}
}
}
int spanCount = 3; // 3 columns
int spacing = 50; // 50px
boolean includeEdge = false;
recyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, includeEdge));
int spanCount = 3; // 3 columns
int spacing = 50; // 50px
boolean includeEdge = true;
recyclerView.addItemDecoration(new GridSpacingItemDecoration(spanCount, spacing, includeEdge));
关于Android Recyclerview GridLayoutManager 列间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28531996/
我正在使用 Recyclerview 和网格布局管理器在 android 中实现仪表板,其中连续 3 个项目。我将从服务器获取仪表板项目。根据项目的数量,我需要将Recyclerview项目调整到中心
我想知道是否有办法可以在android中自定义gridlayoutmanager以具有像这样的草图的水平布局: 我尝试了在 Github 中找到的一些布局管理器,但没有一个可以帮助我实现这种布局管理器
所以我使用 RecyclerView 和 GridLayoutManager 项目之间的间距在项目周围不一致 这是它在 4 x 4 网格中的样子 这是它在 5 x 5 网格中的样子 我已经尝试了很多来
我有一个 list ,假设有 20 个项目。我希望能够像这样加载它们 1 11 2 12 3 13 4 14 5 15 6 16 7 17 8 18 9 19 10 20 我正在使用 Recycler
我在使用 GridLayoutManager 填充回收器 View 时遇到问题。 我需要完成第一行,完成后,转到第二行。我做了一个重新排序列表的算法,所以它被正确显示,我可以在不做任何映射取消映射的情
我正在尝试使用 GridLayoutManager 在 RecyclerView 中添加自定义分隔线但没有成功,我已经搜索了很多并查看了下面提到的答案但它没有帮助我 link 1 link 2 lin
我在我的 RecyclerView 中使用 GridLayoutManager(GLM)。在 RecyclerView 中,我将填充 CardViews,如何设置我的 GLM 以仅呈现一个 CardV
我想在使用 RecyclerView 时在 GridLayoutManager 的一行中显示可变数量的列。要显示的列数取决于列的 TextView 的大小。 我不知道列宽,因为文本是动态放入其中的。
我正在试验 RecyclerView 和 GridLayoutManager。 我最终想要显示与这样显示相同大小的图像,如果可能的话甚至是正方形: GridLayoutManager 的元素是什么使这
我正在尝试使用 GridLayoutManager 构建一个 RecyclerView,它的每行列数可变,如下所示: 同一行中所有项目的宽度之和始终是屏幕宽度。 我尝试重新组织项目列表,按行列表对它们
我有一个带有显示卡片 View 的 GridLayoutManager 的 RecyclerView。我希望卡片根据屏幕大小重新排列(Google Play 应用程序使用它的应用程序卡片做这种事情)。
我有 3 个 Activity :A --> B --> C 在 Activity B 中,我使用 RecyclerView 的 GridlayoutManager 进行填充。我想在导航到 Activ
只是试图将我的 RecyclerView 水平居中。 这是xml: 这里是java代码: mRecyclerView = findViewById(R.id.recycler_view
在 GridLayoutManager 中将跨度大小设置为 1当LoadState是 Loading在分页库中。 我试过this解决方案,但它不起作用。 对于复制问题:克隆 this官方 repo 和
我需要具有水平滚动行为的 RecyclerView Gridlayout 管理器。它必须像垂直方向一样添加 subview (例如(第 1 行,第 1 列)= 索引 0,(第 1 行,第 2 列)=
我用了GridLayoutManager作为我的回收站 View 的布局管理器。 mRecyclerView.setLayoutManager(new GridLayoutManager(getC
我想在 RecyclerView 中创建类似的东西: 但是,我得到了这个: 有没有办法用 RecyclerView 实现这一点? 最佳答案 尝试并检查更换线路 postLine.setLayoutMa
我有 layoutManager = GridLayoutManager(context, 3) 如何使每条奇数线方向从左到右和偶数线 - 从右到左 看起来像: 0 -> 1 -> 2 5 7 ->
我有一个用 RecyclerView 填满屏幕的 fragment ( android:support:v7.widget.RecyclerView ) 和一个 GridLayoutManager .
我正在使用 GridLayoutManager,因此动态设置 recyclerview 的列数(每行)。这是我的代码: GridLayoutManager gridLayoutManager = ne
我是一名优秀的程序员,十分优秀!