gpt4 book ai didi

android - 用于更改行和列跨度的 RecyclerView 布局管理器

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:03:18 29 4
gpt4 key购买 nike

我希望创建以下布局(红色正方形不一定非得是正方形,自定义固定高度也可以)。布局看起来很简单,但我没有找到适合我需要的布局管理器。

wat i want

我尝试了 StaggeredGridLayoutManager,但这只允许设置列或行的跨度,不能同时设置两者。

是否有 float 的自定义布局管理器能够做到这一点?我看过 TwoWayView,但改变高度似乎有问题,而且图书馆没有得到维护。

有人遇到过这个问题并解决了吗?

最佳答案

有点晚了,但它可能对其他人有帮助...

我一直在寻找相同的东西,最后,经过 2 天的谷歌搜索,我找到了解决方案。非常感谢 Nick Butcher !他的名为 SpannableGridLayoutManager 的布局管理器能够做到这一点。在我的例子中,我正在做一个类似于你的前两行的模式:

enter image description here

解决方法很简单:

<强>1。下载 SpannableGridLayoutManager from here

出于某种原因,我不得不更改这一行:

while (availableSpace > 0 && lastVisiblePosition < lastItemPosition) {

while (lastVisiblePosition < lastItemPosition) {

让经理工作。

<强>2。将 SpannableGridLayoutManger 设置为您的 RecyclerView

以我为例:

    SpannedGridLayoutManager manager = new SpannedGridLayoutManager(
new SpannedGridLayoutManager.GridSpanLookup() {
@Override
public SpannedGridLayoutManager.SpanInfo getSpanInfo(int position) {
// Conditions for 2x2 items
if (position % 6 == 0 || position % 6 == 4) {
return new SpannedGridLayoutManager.SpanInfo(2, 2);
} else {
return new SpannedGridLayoutManager.SpanInfo(1, 1);
}
}
},
3, // number of columns
1f // how big is default item
);

这正是我想要的(数字是适配器中项目的位置):

enter image description here

编辑:样式错误将这些行放入 attrs.xml

<declare-styleable name="SpannedGridLayoutManager">
<attr name="android:orientation" />
<attr name="spanCount" />
<attr name="aspectRatio" format="string" />
</declare-styleable>

关于android - 用于更改行和列跨度的 RecyclerView 布局管理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38275082/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com