这有可能与RecyclerView中的项目重叠吗?
我正在用LinearLayoutManager来尝试这个。
我的需求与LinearLayoutManager中的需求是一样的,我只需要从上到下重叠内部的项目。(如堆叠卡)
我通过使用某些变体看到了ListView。因此,我认为在RecyclerView too.But中这是可能的,经过一些时间的探索,我觉得实现一个定制的布局管理器需要相当长的时间,并且对此有相当程度的理解。(我查看了戴夫关于构建自定义LayoutManager的文章)
所以,现在我想我可能只需要根据我的需求使用ListView变体,而不是处理如此复杂的自定义布局管理器。
但是,我只需要把里面的东西重叠起来。我觉得可能还有别的方向,我还没有意识到。请告诉我,除了上面的,还有ListView变体和自定义布局管理器.。
我还将在下面发布我的调查结果。
发布于 2015-03-16 00:30:01
我想你是在寻找部分重叠(例如,一副稍微散开的牌)。如果是这样的话,对于RecyclerView和自定义ItemDecoration来说,这看起来相当简单。下面是一个将项目垂直重叠90 by的简单示例:
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。
发布于 2019-10-10 10:31:32
您可以使用ItemDecoration of RecyclerView实现
集ItemDecoration :
var customAdapter = CustomListAdapter()
recyclerView.addItemDecoration(MyItemDecoration()) // here set decoration in recyclerview
recyclerView.layoutManager = LinearLayoutManager(context)
recyclerView.adapter = customAdapter创建ItemDecoration类:
class MyItemDecoration : RecyclerView.ItemDecoration() {
private val overlapValue = -60
override fun getItemOffsets(outRect : Rect, view : View, parent : RecyclerView, state : RecyclerView.State) {
outRect.set(0, 0, 0, overlapValue) // args is : left,top,right,bottom
}
}https://stackoverflow.com/questions/27633454
复制相似问题