问题标签 [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.
android - RecyclerView 与 StaggeredGridLayoutManager 行高问题
我正面临与 aRecyclerView
相关的问题StaggeredGridLayoutManager
。问题是我有两列跨度,但我想在回收站中间放一些全跨度项目。像这样:
问题是全跨单元和上单元之间的空白空间。有没有一种方法或东西可以告诉ViewHolder
如何填充那个空间或类似的东西?
有谁知道如何实现这一目标?
提前致谢
android - 带有 StaggeredGridLayoutManager 的 RecyclerView:列数可变且可垂直滚动
我想显示一个字符串列表,这个列表必须是垂直可滚动的,并且对于每一行都有可变数量的列,这个列将取决于字符串。所以它将是一个可垂直滚动的网格。所以图形上我想实现这一点:
结果我得到的是一个可水平滚动的列表,有 3 行和许多列,而我想要的是相反的方式:不能水平滚动(很多列,取决于团队名称)但可以垂直滚动。
为了实现这一点,我在回收站视图中添加了一个 StaggeredGridLayoutManager,其中包含 3 个跨度计数(这可能是错误的),并且 StaggeredGridLayoutManager.GAP_HANDLING_NONE 尽可能多地拥有列。
第一个问题是是否可以使用 StaggeredGridLayoutManager 实现这一目标?如果是,我该如何解决我的问题?欢迎任何建议或想法。
请注意,xml 中的项目具有最大宽度,然后省略
我拥有的是以下内容:item_team.xml
团队适配器.java:
activity_main.xml
MainActivity.java
android - 使用 StaggeredGridLayoutManager 防止图片移动
我和这篇文章有同样的问题。
http://i.imgur.com/FUapm2K.gif?1
StaggeredGridLayoutManager 和移动项目
但是我无法理解答案,这是我在OnBindViewHolder()
适配器方法中调用的方法。
我的图片已完美调整大小并保持其原始纵横比。但是当我再次向上滚动时,我得到了移动错误......
即使我会为每张图片“存储”这些值,如果不使用这些值,我应该在哪里以及如何再次使用这些值getLayoutParams().height
?
在我Fragment
包含回收器视图的我只有 StaggeredGridLayoutManager 的以下代码行:
gridLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL);
即使我删除了DefaultAnimator
它,即使它做得更快,我们仍然可以看到变化,这很丑陋。
谢谢
android-recyclerview - 具有自动调整跨度计数的 StaggeredGridLayoutManager
我需要一个 StaggeredGridLayoutManager 遵循这两个要求:
- 根据每列设置的最小 dp 大小自动计算列数,列扩展以完全适合可用空间(例如:如果我定义 150dp 最小列,并且应用程序在 480dp 宽度的设备上运行,则网格视图将包含 3 列,剩余的 30dp 将被平均分割,这样每列都是 160dp 宽)
- 网格布局必须在方向更改时重新计算跨度计数,因为在纵向和横向模式下适合屏幕的列数通常相距很远
到目前为止,我还没有需要交错网格项,所以我使用了 GridLayoutManager 的扩展来提供这个功能:
在回收站视图中使用布局管理器:
最后,项目视图布局在宽度上设置为 match_parent,因此它们将占用布局管理器允许的尽可能多的空间。
但是,我无法让它与 StaggeredGridLayoutManager 一起使用。这是我的代码:
加载回收站视图后,我得到以下异常:
java.lang.IllegalStateException:当 RecyclerView 正在计算布局或滚动时无法调用此方法
问题是因为我在解决布局时调用了 setSpanCount(),这不是 GridLayoutManager 的问题,但在 StaggeredGridLayoutManager 中是不允许的。我的问题是,如果我不能在 onLayoutChildren() 期间设置跨度计数,我什么时候可以设置它?
我知道我可以在初始化布局管理器之前计算出适合多少列,并将跨度计数传递给 StaggeredGridLayoutManager 构造函数。但是,这不会对方向更改做出反应,除非我向重新创建布局管理器的活动添加额外的逻辑,我希望避免这种情况。有没有办法让我的 GridAutoFitStaggeredLayoutManager 计算跨度计数并自行处理方向更改?
android - 交错水平Recyclerview Android,需要帮助
我想要实现的是创建一个水平滚动的 RecyclerView,并且项目应该以不同的大小出现,类似于从 0 位置开始的绘图等等。到目前为止我尝试过的是:
- 在适配器 onBindViewHolder 上使用项目的位置,但这不是解决方案,也不能解决我的问题。
- 将StaggeredGridLayoutManager 实现为布局管理器
StaggeredGridLayoutManager staggeredGridLayoutManager = new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.HORIZONTAL);
,但 spanCount 阻止了我。 - GridLayoutManager 垂直滚动,而不是水平滚动
是否有任何关于如何设计特定 RecyclerView 布局管理器的库或指南?任何帮助将不胜感激,谢谢!
android - 如何在共享首选项上保存 RecyclerView 的 spanCount?
我的问题是有没有办法在 SharedPreferences 中保存 ReciclerView 的 SpamCount?我尝试创建一个可以将视图从“列表模式”更改为“网格模式”的列表,并将该信息保存在 SharedPreferences 中,以便在终止应用程序后保留“列表视图”。我正在尝试做的 例子如下......我在按钮点击时尝试做的例子
我尝试更改的代码如下...
尝试启动 Activity 时,RecyclerView 不显示任何内容,并且按钮不起作用。如果有人可以帮助我,我会提前感谢...谢谢
android - 使用 StaggeredGridLayout 的 RecyclerView 中的全宽页脚或最后一项
所以这很棘手。我发现最接近这个工作的是这个答案的修改版本。我使最后一个项目的高度与我想要全宽且不可见的视图相同。然后我添加一个 itemdecoration 并将其绘制在列表中的最后一项应该可见的位置,如下所示:
这种方法的问题是,当最后一个上方的 recyclerview 中的项目从视图中消失时,我能想到的值rectf.top
或view.top
任何测量值都会发生飞跃并取代最后一个项目。
有谁知道使用 StaggeredGridLayoutManager 将全宽最后一项或页脚添加到 recyclerview 的方法?我知道它适用于 Gridlayout,但在我的情况下它不是一个选项。
或者,如果您知道一个值,它可以在屏幕上最后一个项目的正确位置而没有任何值跳转?
编辑:
我想要实现的更多细节。
它应该是一个 StaggeredGridLayout,在最后一项下方有一个页脚,它是全宽的,并与其余内容一起滚动。