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

android - 如何按阅读顺序实现交错视图?

这是我想要实现的:

交错视图

我正在尝试显示我从网络上获得的定义(现在它们来自虚拟数据,但这既不在这里也不在那里)。

我的第一个想法是使用水平的 StaggeredGridView。这有两个问题。视图未按正确顺序排列,跨度计数未动态设置。另外,我发现在 onLayoutChildren() 中调用 setSpanCount() 会导致运行时出错。

交错视图尝试

当然,我可以只拥有一个 LinearLayout 并放弃回收视图的尝试。这在大多数情况下都有效,但如果用户确实发生了长度定义,那么内存效率将非常低。

考虑到这一点,我决定继承 StaggeredGridLayoutManager。这就是我需要你帮助的地方。以下是我在自己的搜索中找到的资源:

Google 的 LinearLayoutManager 实现

实现自定义 LayoutManager 的指南

实现自定义 LayoutManager 的另一个指南

实现自定义 LayoutManager 时要遵循的几个原则概述

我经历了其中的每一个,但我无法在心理上区分出针对其特定用例的哪些部分以及所有自定义实现所共有的部分。如果有人可以向我指出资源的方向或解释我必须以什么顺序和出于什么目的调用的所有方法,我将非常感激。谢谢!

0 投票
1 回答
478 浏览

android - TalkBack 可访问性 StaggeredGridLayoutManager 焦点顺序错误

所以我试图让我的应用程序可以通过 TalkBack 功能访问。我正在尝试使用布局管理器 StaggeredGridLayoutManager (Staggered GridView) 在 RecyclerView 中检查 22 个项目,我希望焦点按照项目位置的顺序排列。

预期的例子 -

...

但实际顺序是

1,2,3,4,6,7,8,9,11,10,12,19,20,21,22 https://github.com/YoniBagi/StaggeredGridForAccessibility/blob/master/accessibility.gif

现在这里有两个问题:

  1. 它不按照位置顺序。
  2. 出于某种原因,在第 12 项它跳转到第 19 项并跳过介于两者之间的那些。

任何解决方案或想法将不胜感激。

代码: https ://github.com/YoniBagi/StaggeredGridForAccessibility/tree/master

0 投票
0 回答
56 浏览

android - 带有交错布局的 Android CardView

我对 Android 有点陌生,我正在尝试不同的布局等等。今天,我正在使用 CardViews 作为项目创建 RecyclerView。一切都很好,但我还发现了交错布局管理器。所以我用交错视图和图像等创建了 RecyclerView。下一步,我想创建 CardView,这个 CardView 的内容是“交错视图”中的图像。喜欢这张图片

CardView 交错布局管理器

知道如何实现吗?我会很高兴有任何指示。

问候,戈洛比奇

0 投票
1 回答
412 浏览

android - RecyclerView StaggeredGridLayoutManager FindFirstVisibleItemPositions 始终为 0 (androidx)

我想尝试延迟加载recyclerViewby staggeredGridLayoutManager,但该FindFirstVisibleItemPositions函数找不到第一个可见项目位置,它总是返回 0 和 1(我有 2 列),并且onScrolled只会在init.

我用androidx.recyclerview.widget.

我的代码

结果

0 投票
3 回答
1749 浏览

java - 根据项目位置动态更改 StaggeredGridLayout 的列跨度计数

我想为(n)项列表实现这种布局: 这个布局

到目前为止,我可以在两列中显示项目,但是如何将两列合并为一列以用于特定位置(即作为项目 7)?

我尝试了 SO 和其他提供的许多解决方案,但没有一个对我有用。那里提供的解决方案要么使用 LinearLayout 膨胀静态布局,要么为列中的分区提供解决方案。

我也尝试过使用setSpanLookup方法但没有运气..

0 投票
1 回答
795 浏览

android - 在两个方向上工作的交错网格布局管理器

我正在尝试做的事情:

我正在尝试创建一个交错的网格布局,该布局采用不同宽度高度的项目。布局动态地移动项目,因此它们不会重叠。

我试过的:

我研究过使用 default StaggeredGridLayoutManager,但它似乎只能在一个方向上工作(即垂直水平)。此外,我遇到的每个库或教程也只处理包含动态高度或动态宽度的项目,但不能同时包含两者。

有没有办法让StaggeredGridLayoutManager动态跨越垂直和水平?还是我必须创建自己的自定义布局管理器?如果是后者,有人能指出我正确的方向来了解如何创建这样的布局管理器吗?

0 投票
0 回答
265 浏览

android - Android - 在将应用程序长时间保持在后台后重新打开应用程序时,Recyclerview 空白

我有以下应用程序结构:

问题:在后台保持几个小时后打开应用程序后,recyclerviewFragment A保持空白,但 recyclerviewFragment B 显示数据。两个recyclerviews 在它们的适配器中使用相同的arraylist 实例。

应用程序在短时间内最小化/恢复时不会出现问题。

我可以通过在开发人员选项中设置Background process limit来重现这一点。No background processes所以我的猜测是每次操作系统停止/终止进程时都会发生这种情况。

我正在使用一个扩展FragmentStatePagerAdapter为我的 ViewPager 适配器的类。

已经尝试过以下方法,但没有运气:


编辑1:在片段中A,如果我替换StaggeredGridLayoutManagerGridLayoutManager,它会显示数据。所以问题似乎出在StaggeredGridLayoutManager


编辑 2:附加代码(简化的类/变量名称以便于理解

  • TabAdapter - viewpager 的适配器
  • Activity - 包含 viewpager
  • 片段 A - 具有交错网格布局
  • 片段 B - 带有网格布局
0 投票
1 回答
138 浏览

xamarin.android - 使用 StaggeredGridLayoutManager 时的小图像

我在查看器项目中有一个 recyclerview,它可以很好地显示多达 5 个图像以及其他一些文本。它工作得很好,只是图像看起来很小,我不确定我哪里出错了。

主视图项目布局

图像网格视图项目:

我用来将网格绑定到 recyclerview 的代码

不确定您还想看什么,如果我需要提供更多代码示例,请告诉我,我对自己做错了什么感到迷茫。

0 投票
0 回答
27 浏览

android - Recyclerview 与交错网格 LayMan

我想实现关于座位的黑色箭头出口门,因为箭头键存在于单个座位细节对象中。我正在使用带有交错 GridLayoutManager 的运行时 RecyclerView 来填充座位,但无法实现黑色出口门箭头。

在此处输入图像描述

0 投票
1 回答
244 浏览

android - StaggeredGridLayoutManager 重新排序项目而不考虑定义的边距

I',使用StaggeredGridLayoutManagerfor myRecyclerView以在 2 列中显示宽度相等但高度不同的项目。因为我希望项目之间的差距相等,ItemDecoration所以正在使用以下内容:

它工作正常。但是在滚动recyclerview之后,当它得到时Idle,布局管理器重新排序一些项目以填补空白(这很好,我想要这种行为),但如果一个项目从第二列移动到第一列,它不使用在上面的代码中为第一列定义的边距,如果项目从第一列移动到第二列,它也不会更新它的边距。如何解决这种不当行为?! 重新排序之前重新排序后