是否可以重叠 RecyclerView 中的项目?
我正在尝试使用 LinearLayoutManager 。
我的要求与 LinearLayoutManager 中的相同,我只需要从上到下重叠内部的项目。 (如堆叠卡片)
我见过一些变体 https://stackoverflow.com/questions/10211835/android-vertical-listview-with-overlaped-rows通过使用ListView。所以,我想这会
在 RecyclerView 中也是可能的。但是,经过一段时间的探索,
我觉得实施定制需要相当长的时间
布局管理器并对这一点有相当程度的理解。(我看了
进入戴夫的帖子构建自定义布局管理器 http://wiresareobsolete.com/2014/09/building-a-recyclerview-layoutmanager-part-1/ )
所以,现在我想我可能只需要根据我的要求使用 ListView 变体,而不是处理如此复杂的自定义布局管理器。
但是,我只需要让里面的项目重叠即可。我觉得可能还有一些我还没有意识到的其他方向。请告诉我是否有除了上面的 ListView 变体 and 自定义布局管理器。
我还将在下面发布我的发现。
我假设您正在寻找部分重叠(例如,一副纸牌稍微呈扇形展开)。如果是这样,那么使用 RecyclerView 和自定义 ItemDecoration 看起来相当简单。下面是一个简单的示例,其中项目垂直重叠 90 像素:
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);
}
}
此示例对偏移量进行了硬编码,但如果您的列表项的高度有所不同,您将需要为此进行测量并添加逻辑。
在设置布局管理器之前将此装饰添加到 RV。我已经用 StaggeredGrid 尝试过,但它也应该与 LinearLayout 和 Grid LM 一起使用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)