问题标签 [staggeredgridlayoutmanager]

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 投票
2 回答
511 浏览

android - ViewPager中带有StaggeredGridLayoutManager的RecyclerView,返回fragment时自动排列item

我在我的应用程序中使用导航组件,使用谷歌高级示例(此处)。我的问题是返回片段时,滚动位置不会丢失,但它会重新排列项目并移动最高可见项目,以便这些项目的顶部与 recyclerview 的顶部对齐。请看这个:

在此处输入图像描述

在进入下一个片段之前:

在此处输入图像描述

然后回到片段:

在此处输入图像描述

这个问题很重要,因为有时单击的项目会下降并且直到向下滚动才能看到。如何防止这种行为?

请考虑:

  • 如果使用导航组件更改片段,则存在此问题。如果启动片段使用supportFragmentManager.beginTransaction()或启动另一个活动,然后转到该片段就可以了。但是如果我使用导航组件导航到另一个片段,则存在此问题。(可能是因为重新创建片段)

  • 如果在 ViewPager 中使用片段也存在此问题。即,recyclerView 位于使用 ViewPagerAdapter 处理的片段中,而 viewPager 位于使用 Navigation 组件打开的 HomeFragment 中。如果 recyclerView 在 HomeFragment 中没有问题。

  • LinearLayoutManager 没问题。仅使用 StaggeredGridLayoutManager。

  • 如果使用 ViewPager2 和 FragmentStatePagerAdapter 没有区别

  • 我试图防止重新创建片段(通过这个解决方案)但没有解决。

更新:你可以从 这里克隆有这个问题的项目

0 投票
0 回答
59 浏览

android - 带有 StaggeredGridLayoutManager 的 Recyclerview 没有缩小底部的差距

我已经用 StaggeredGridLayoutManager 实现了一个简单的 recyclerview,如下所示:

activity_main.xml

recyclerview_layout.xml

MyRecyclerViewAdapter.java

MainActivity.kt

数据列表中的文本大小不同,因此为了缩小差距,我将交错差距策略设置为 GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS。但目前,输出是: 在此处输入图像描述

但我想要的是通过重新排列下面的项目来缩小底部的差距,我不知道如何让 StaggeredGridLayoutManager 为我做到这一点: 在此处输入图像描述

0 投票
0 回答
21 浏览

android - StaggeredGridLayoutManager 动态大小

我一直在尝试使用StaggeredGridLayoutManager来复制 DISCORD 的 gif finder 的布局,如下所示

在此处输入图像描述

我正在设置如下布局

我的网格看起来像这样 在此处输入图像描述

我想将所有项目修复到它们的空间中,而不是像第一个屏幕截图那样有所有这些间隙。(没有间隙)

我尝试在我的适配器中执行此操作(https://www.javaer101.com/en/article/14809883.html

这是行不通的,因为它将项目变成匹配父项的大小,这意味着每行一个项目。

有谁知道如何在不使用库的情况下实现这一目标

0 投票
0 回答
36 浏览

android - StaggeredGridLayoutManager 列表滚动时的奇怪效果

我必须实现一个图像列表,例如 pinterest 的图像列表(具有不对称行的网格),并且我StaggeredGridLayoutManager在我的片段中以这种方式使用:

场景片段

由于此图像列表是分页的,因此我 onViewCreated将其称为方法:

它工作正常,它可以正确加载图像。

这是适配器

问题是这样的:当显示片段时,我显示了 10 个项目。当我向下滚动时,它工作得很好。但是当我回去,向上滚动时,这些项目会做一个动画,就像它们被重新排序或重新加载一样,它每次都会改变。谁可以解决这个问题?

PS:问题与分页无关,我尝试只获取第一页,尺寸很大,但问题仍然存在。

0 投票
2 回答
83 浏览

android - 安卓。StaggeredGridLayoutManager 确定跨度索引

我使用recycleViewwith StaggeredGridLayoutManager(列数为 3)。我需要确定当前单元格位于哪一列(按位置)。是否有可能做到这一点?请帮我。注意:我的单元格的高度不同(正方形或矩形)

0 投票
1 回答
109 浏览

android - 安卓。StaggeredGridLayoutManager 将单元格放置在错误的位置

我使用带有 StaggeredGridLayoutManager 的 recyclerView。我有两列,列中的单元格可以有不同的高度。这些物品的位置很好,但是在某些设备上我注意到了以下问题。假设我有一个元素列表:A、B、C、D、E、F、G、H。在视觉上,它看起来像这样:

我的专栏图片

我预计 G 元素将位于左列,因为这些元素是从左到右定位的,请告诉我这种行为可能是什么原因。我需要元素位于左列。G元素应该适合左栏的空闲位置,但它位于右侧,这对我来说是不正确的 这只能在某些设备上播放。我希望这个元素的顺序,在左栏中:A,C,E,G,在右栏中:B,D,F,H。我尝试将 gapStrategy 设置为 GAP_HANDLING_NONE,但之后我的项目没有显示:

0 投票
0 回答
80 浏览

android - StaggeredGridLayoutManager 抛出异常

我正在使用带有StaggeredGridLayoutManager的回收器视图。当我尝试更改适配器中的数据并反复调用notifyDataSetChanged时,我的应用程序将因 StaggeredGridLayoutManager 中的 ArrayIndexOutOfBoundException 而崩溃。在查看了一些 stackoverflow 答案后,我尝试在调用notifyDataSetChanged之前添加一个isComputingLayout检查。但它也不起作用。所以我正在寻求你的帮助。我附上下面的错误。提前致谢。

0 投票
1 回答
61 浏览

flutter - HetrogenousImagesLayout/AsymmetricGridView 使用 Flutter GridView

视频列表设计

如何使用 Flutter GridView 进行这样的设计请帮助

0 投票
1 回答
149 浏览

android - 分页不适用于交错网格布局android

您好,我试图在我的 recylerview 中包含分页,但不知道为什么它不适用于 staggeredgrid 布局 这是我正在寻找的问题,因为答案是针对线性布局管理器的,我得到了如何在 staggerdgrid 布局管理器中实现分页的答案, 这是我实施后在我的代码中尝试了图像未加载

ScreenShot // 我现在得到什么的 ss

在此处输入图像描述

短代码

完整代码

更新 1

添加了 adapter.class

0 投票
0 回答
24 浏览

android - 如图所示,如何实现交错布局管理器的高度

我正在使用 Recycler 视图和 StaggeredGridLayoutanager 我只想实现我的应用程序,如下图所示

我的current_Screen

预期_屏幕

我只想管理交错网格布局管理器,忽略课程名称和背景图像的差异