问题标签 [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 投票
0 回答
71 浏览

android - Android StaggeredGridLayoutManager 将不同高度的项目对齐到底部

我正在使用带有 3 个水平项目的 StaggeredGridLayoutManager,这些项目都有不同的高度。我的问题是这些项目以某种方式与回收站视图的顶部对齐,使我在底部留下空白空间,我需要它们在底部对齐,以便高度较小的项目在顶部留下间隙。

目前 :

目前

预期结果 :

在此处输入图像描述

0 投票
0 回答
36 浏览

android - 为什么交错的 GridView 列空间在第二行增加?

我的交错网格布局列空间发生了变化(正如您在第二行中看到的那样,两个项目之间的差距增加了一点。

这是用于在项目之间添加空间的 EqualSpacingGridItemDecoration 类:

这是单个项目的 XML:

这是我得到的视图: 交错网格布局视图

这里有什么问题?请任何人帮忙。

0 投票
1 回答
128 浏览

android - 如何使用 StaggeredGridLayoutManager 在 recyclerview 中实现无限滚动(分页)

您好,我有一个recyclerview加载的图像,firebase我想实现无限滚动,但我遇到的问题是StaggeredGridLayoutManager,我必须使用它,我无法替换它grid-layout

注意:-我已经看到有关此主题的其他答案,但大多数答案是针对LinearLayoutManager,有些是针对,GridLayout但我发现只有一个答案StaggeredGridLayoutManager,我不知道为什么它对我不起作用

如果您想要更多代码参考,请告诉我我会更新问题

Profile_Fragment.java

更新 1

主要问题代码随当前答案更改,并按要求添加了适配器类

问题

实施答案后没有错误,但图像没有加载,所以我用添加的答案更新了主代码

PostAdapter.java

0 投票
0 回答
41 浏览

android - 如何使用recyclerview:1.2.0-alpha02 保存和恢复recyclerview位置

我正在搜索如何保存和恢复我的应用程序的回收站视图位置(从未尝试实现保存和恢复回收站视图的位置),在看到许多不同的实现方式后,我发现了一种有趣的方式,即 recyclerview:1.2。 0-alpha02 它是自动完成的 这里是一篇 中等文章

我已经阅读了这篇文章,但我不知道如何在我的代码中准确地实现它

请原谅我写这篇文章的非常不专业的方式,因为我真的不知道如何实现一个回收器视图来保存滚动并恢复位置

activities我想要保存和恢复位置的功能是 Instagram 或 youtube 或任何具有无限滚动的大型社交媒体或应用程序,如果你在不同或仍然之间切换,fragments当你回来时,回收站视图的位置保持不变

这是代码// 代码没有任何 recyclerview:1.2.0-alpha02 的实现,因为正如我上面所说,我不知道如何实现它

注意:-如果有人想要我的代码的更多参考,请告诉我我会更新问题,我使用了 StaggeredGridLayoutManager 只是提到它,以防有必要知道

Home_Fragment.java

PostAdapter_Home.java


0 投票
0 回答
79 浏览

android - 在 RecyclerViews 的 RecyclerView 中保持滚动位置并更新项目

我有一个布局,其中包含RecyclerView由一些TextViews 和 Horizo ​​ntal 组成的项目的 Vertical RecyclerView,因此它可以归结为经典的“列表列表”。

现在,可以单击列表中列表中的一项(我们称它们为孙子),这会改变自身和其他列表中的孙子。像这样的东西:

列表列表

现在,事实证明,由于我们不知道哪个项目影响哪个列表,我们刷新整个顶层AdapterDiffUtil它。而且由于它是一个列表列表,并且列表列表中的某些内容发生了变化,因此整个列表都被“刷新”了。这意味着我们不再跟踪列表滚动位置。

我最初尝试保持内部列表的滚动位置并在检测到更改时立即重置它们,但它很不稳定,您可以清楚地看到滚动位置转到列表的开头和一帧后,回到哪里它是。此外,其中一个列表恰好使用 a StaggeredGridLayoutManager,当重新加载适配器并随机播放项目时,它无法正常工作,因此重置时位置可能不正确。

我做了一些技巧,使 internal ViewHolders 不可回收,并直接访问它们并传递新列表,但这意味着我们不能再依赖DiffCallback,否则它会通知整个列表的更改。这就是问题再次出现的地方。

由于我们不再回收物品,也不依赖DiffCallback,所以顶级物品没有变化通知,这意味着视图之外的物品没有得到通知,因此当它们来到视图时,它们'没有改变。

有没有办法在这种配置中完成修改其他孙子而不丢失滚动位置?

0 投票
0 回答
18 浏览

android - 使用 StaggeredGridLayoutManager 时,项目会在滚动时重新洗牌

我将 StaggeredGridLayoutManager 与 recylerview 一起使用,并在适配器中传递图像列表。当我向下然后向上滚动时,图像项目的顺序会被打乱。我用谷歌搜索并查看了类似的 SO 答案,建议将 setGapStrategy() 设置为 GAP_HANDLING_MOVE_ITEMS_BETWEEN_SPANS 和 GAP_HANDLING_NONE,我同时使用了两者,但随机播放行为没有任何变化。

下面是我的布局管理器代码:

我的 item_image_tile xml:

先感谢您!

0 投票
0 回答
8 浏览

android-recyclerview - 如何确定 StaggeredGirdLayoutManager 的最后一行

我正在定制物品装饰,我遇到了困难。我打算判断最后一行。我已经尝试过计算,但凌乱的布局使计算错误。