【问题标题】:RecyclerView+GridLayoutManager make item span multiple rowsRecyclerView+GridLayoutManager 使item跨越多行
【发布时间】:2017-12-13 06:22:25
【问题描述】:

我有一组照片,我正在使用 RecyclerView 来显示它们。我想让我的 RecyclerView 中的第一个元素跨越 2 列和 2 行:

我知道我可以使用 setSpanSizeLookup 跨越 2 列:

    GridLayoutManager gridLayoutManager = new GridLayoutManager(this, 3);
gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
    @Override
    public int getSpanSize(int position) {
        if (position == 0) {
            return 2;
        } else {
            return 1;
        }
    }
});

但是我怎样才能让第一个项目也跨 2 行呢? ,,如果我不能用 GridLayoutManager 做到这一点,我该怎么做,我应该用什么?

【问题讨论】:

  • 使用GridLayoutManager的默认实现,你不能同时垂直和水平跨越
  • 好的,我该怎么做,我应该用什么?
  • 不确定 StaggeredGridLayoutManager 是否允许您这样做
  • Here 有一个使用StaggeredGridLayoutManager 的教程,但尚未为此特定用例创建此类。它的创建是为了在下一行中“推送”一些视图来设置间隙策略。顺便说一句,您可以尝试看看是否可以通过一些修改来达到相同的效果,或者尝试使用@Robillo 建议的库,看起来很有希望
  • @MatPag 我有大量由网格布局管理器构建的代码,您发送的链接有很多适配器修改,这意味着时间和最终结果在图像视频上为零实时播放,我会先尝试 Robillo 的 lib 帖子,如果该 lib 不起作用或非常滞后或出现一些奇怪的问题,请尝试此操作

标签: java android


【解决方案1】:

在 Android 框架中,如果不编写自定义代码,您将无法直接执行此操作。 但是看看这个库,它做的事情与你想要实现的相似。这是链接:https://github.com/Arasthel/SpannedGridLayoutManager

【讨论】:

  • 我会试试的,给点时间
猜你喜欢
  • 2023-03-15
  • 1970-01-01
  • 2015-02-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 1970-01-01
相关资源
最近更新 更多