如何重叠LinearLayoutManager中的项目 - RecyclerView(如堆叠卡)

Aun*_*yae 22 android listview recycler-adapter android-recyclerview


这可能与RecyclerView的项目重叠吗?
我正在尝试使用LinearLayoutManager.
我的要求与LinearLayoutManager中的要求相同,我只需要从上到下重叠内部的项目.(像堆叠卡)

我通过使用ListView 看到了一些变体.因此,我认为在RecyclerView中也是可能的.但是,经过一些时间的探索,我觉得要花费相当长的时间来实现一个自定义布局管理器并对此有相当程度的理解.(我查看了Dave的帖子关于构建自定义LayoutManager)

所以,现在我想我可能只需要根据我的要求使用ListView变体,而不是处理自定义布局管理器的这么多复杂性.

但是,我只需要让里面的物品重叠.我觉得可能还有其他方向我还没有意识到.如果除了ListView varientCustom Layout Manager 之外还有其他任何内容,请告诉我.

我还将在下面发布我的发现.

Moj*_*osh 31

我假设你正在寻找一个部分重叠(例如卡片略微散开).如果是这样,使用RecyclerView和自定义ItemDecoration看起来相当简单.这是一个简单的例子,它将项目垂直重叠90px:

public class OverlapDecoration extends RecyclerView.ItemDecoration {

  private final static int vertOverlap = -90;

  @Override
  public void getItemOffsets (Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

    outRect.set(0, vertOverlap, 0, 0);

  }
}
Run Code Online (Sandbox Code Playgroud)

此示例硬编码偏移量,但如果列表项的高度不同,则需要测量并添加逻辑.

在设置layoutmanager之前,将此装饰添加到RV.我已经尝试使用StaggeredGrid,但它也适用于LinearLayout和Grid LM.

  • 我知道这个答案可能并不适合所有人,但我不理解下选票.它确实有效,即使作为shiami说明,它也没有显示下面项目的顶部.这仍然是任何人为这个为期9个月的问题提供的唯一答案,也是唯一不需要自定义布局管理器的建议方法. (2认同)