android – RecyclerView layoutmanager用于更改行和列跨度

前端之家收集整理的这篇文章主要介绍了android – RecyclerView layoutmanager用于更改行和列跨度前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我希望创建以下布局(红色sqaures不一定是正方形,自定义固定高度也很好).布局似乎很简单,但我找不到适合我需要的布局管理器.

我尝试了StaggeredGridLayoutManager,但这只允许设置列或行的跨度,而不是两者.

自定义布局管理器周围是否有浮动能够执行此操作?
我看过TwoWayView但是改变高度似乎有问题而且库没有被维护.

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

解决方法

有点晚了,但它可能会帮助其他人……

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

解决方案很简单:

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
    );

这给了我我想要的东西(数字是适配器中项目的位置):

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

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

猜你在找的Android相关文章