问题标签 [staggeredgridlayout]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
26082 浏览

android - StaggeredGridLayoutManager 和移动项目

我创建了一个非常简单的项目,StaggeredGridLayoutManager通过 recyclerview 显示 28 张图像。但是当我滚动recyclerview时,它会例如从左到右移动项目或交换左右列。

代码:

和适配器:

和一个示例移动项目:

http://i.imgur.com/FUapm2K.gif?1

如果你玩(上下滚动)你会发现更多有趣的动画:-)

如何防止这种情况并像普通列表视图一样拥有稳定的布局?

编辑

0 投票
0 回答
513 浏览

android - TwoWayView StaggeredGridLayoutManager 不适用于 StickyHeaders

我正在使用TwoWayView和 StaggeredGridLayoutManager 来创建与 Pinterest 应用程序相同的网格。我还需要在这个视图中实现 StickyHeaders。对于标题,我使用eowise/recyclerview-stickyheaders 之类的项目装饰。问题是:当行的一半有第一个标题而行的一半有第二个标题时,标题覆盖在行的一部分之上(见下文)

x - 第一个标题的项目 y - 第二个标题的项目

xxx
xyy
yyy

所以在这种情况下,标题覆盖了“xyy”行。但它必须看起来像这样:

xxx
x
"hdr"
yyy
yy

(hdr - 表示标题视图)。

所以请帮助我,我正在尝试修复这个很长一段时间并尝试通过不同的方式实现:使用带有自定义布局的 ListView 作为项目,使用 GridView,现在使用这个 - ReclyclerView。

0 投票
2 回答
752 浏览

android - RecyclerView + StaggeredGridLayout + Picasso 获取 GridItem 宽度

m 使用RecyclerViewwith StaggeredGrid(spanCount 是可变的)。每个 GridItem (a CardView) 都包含一个方形 ImageView。我想要的是从我的后端加载一个具有所需宽度和高度的图像,以完全适合 CardView 内的 ImageView。有什么建议我可以做到吗?代码示例如下:

简而言之:在绑定 ViewHolder 之前,我需要以某种方式获取 imageView 尺寸(宽度)。

0 投票
9 回答
10438 浏览

android - 将 RecyclerView 与 StaggeredGridLayoutManager 一起使用时如何避免项目之间的双倍空格?

我使用 RecyclerView 和 StaggeredGridLayoutManager 来制作一个两列的列表。但是如何在左列和右列之间设置右边距。我已经使用此代码从顶部制作右边距,但如何解决列之间的双重空格。

在活动中:

我试过用view.getX(),它总是返回0。

谁能帮我?非常感谢!

0 投票
4 回答
9417 浏览

android - 如何使用 StaggeredLayoutManager 实现无限滚动

我已经尝试为 LinearLayoutManager 实现无限滚动并且它成功并尝试将 LinearLayoutManager 实现复制到 StaggeredGridLayoutManager 但它不起作用。

我只想得到第一个VisibleItem。

在线性布局管理器中:

但在 StaggeredGridLayoutManager 中是:

如何使用(int)而不是(int [])获得firstVisibleItem?

有什么好的方法/实现吗?

提前致谢。

0 投票
2 回答
1145 浏览

java - StaggeredGridLayoutManager 中的 NullPointerException

我收到一些关于 StaggeredGridLayoutManager 中发生 NullPointerException 的崩溃报告。看起来我的用户中大约有 10% 遇到了这个问题。

我有一个非常基本的 RecyclerView 和一个基本的适配器,没什么特别的,我确实尝试在我的设备中重现这个错误,但一点运气都没有。

这是我收到的原始报告:

我不知道发生了什么。我想也许我在布局管理器之前设置了适配器,但不,事实并非如此。

我希望有人可以对此有所了解。

提前致谢!

更新:

我正在从我的应用程序中复制一些与 RecyclerView 相关的代码。

此代码来自片段:

这是来自适配器,特别是设置适配器项的方法:

0 投票
2 回答
1047 浏览

android - 带有 CardView 的 StaggeredGridLayoutManager 不适合项目度量

我正在尝试将StaggeredGridLayoutManager与(v22)的CardView一起使用。android.support.v7.widget这是我的项目的布局:

在模拟器和设备 5.0+ 上,它可以正常工作,但在模拟器 4.xx 上,图像不会调整大小以填充项目的宽度/高度(因为有一个比例类型centerInside不适合项目的度量)。我现在无法在真正的 4.xx 设备上试用它,有谁知道这是否仅在模拟器中或什至在某些真正的 4.xx 设备中存在问题?

从文档http://developer.android.com/reference/android/widget/ImageView.html#setAdjustViewBounds(boolean )] 1

如果应用程序的目标 API 级别为 17 或更低,adjustViewBounds 将允许可绘制对象缩小视图边界,但在所有情况下都不会增长以填充可用的测量空间。

0 投票
1 回答
2258 浏览

android - 了解 RecyclerView 项目何时首次显示(Android)

我正在尝试使用 Google Analytics Enhanced Ecommerce 在 RecyclerView StaggeredGrid 上发送我的产品的“印象”。每次用户滚动时,我都会检查哪些产品是可见的并发送一个 Hit:

但是当第一次构建 RecyclerView 并且第一个产品可见时,我还需要运行它。

我怎么知道第一批物品已经准备好了?我尝试在 recyclerview 和 onBindViewHolder 上使用 ViewTreeObserver 没有成功。

编辑:这是在viewpager上使用的片段内,所以我需要知道项目何时真正可见而不仅仅是添加。

谢谢

0 投票
3 回答
2419 浏览

java - 使用 StaggeredGridLayout 预加载毕加索图像

我有一个 StaggeredGridLayoutManager,它在 2 列宽的网格中加载 20 张卡片,其中包含图像(从缓存、网络或 Picasso 存储中加载)。

问题:

目前,当您向下滚动列表时,图像会在卡片滑入视图时加载,如下视频所示:

https://www.youtube.com/watch?v=1xMNmMjqEbI

所需的解决方案:

我想要的是将图像加载到屏幕外,所以有一个像这个视频这样的无缝用户体验:

https://www.youtube.com/watch?v=4c7ZID7yjII

这些视频来自一篇博客文章,该文章使用LinearLayoutManager解决了这个问题,而不是StaggeredGridLayoutManager。我似乎无法找出这个问题的等效解决方案。我对android开发相当陌生,并试图通读文档,但我似乎找不到任何导致解决方案的东西。

代码:

0 投票
0 回答
232 浏览

android - 为什么 CardView 在滚动时会自动调整位置

我在我的项目中使用了 RecyclerView 和 CardView,这两个小部件的大多数参数都是默认的,我没有自定义太多,但是出现了两个问题。

  1. 为什么那些 CardView 在下拉刷新使用 SwipeRefreshLayout 的数据时会闪烁一秒钟,我可以停止这种效果吗?
  2. 为什么那些 CardView 在滚动时会自动调整位置?我可以停止这种影响吗?

我用于 RecyclerView 的布局是 StaggeredGridLayout,在这里发布代码很不方便,因为我的项目中有太多代码无法使用这些小部件,所以你可以告诉我应该在这里发布哪一部分,谢谢。