负偏移导致RecyclerView项目消失

时间:2018-06-04 19:42:49

标签: android-recyclerview kotlin android-cardview

在我的RecyclerView中,每个CardView组都有一个标题图片。图像延伸到第一张卡片视图下方,以创建漂亮的视觉效果。我通过创建图像标题视图保持器来实现此目的,并将每个组中第一个CardView的偏移设置为负(使用ItemDecoration)。但是,正如您在屏幕底部看到的那样,CardView在完全脱离屏幕之前就会消失。

enter image description here

我的自定义项目装饰

class OffsetItemDecoration(val offset: Int, val itemPositions: Array<Int>) : RecyclerView.ItemDecoration() {

    override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State?) {
        super.getItemOffsets(outRect, view, parent, state)

        val position = parent.getChildAdapterPosition(view)
        val layoutManager = parent.layoutManager

        if (!itemPositions.contains(position) || layoutManager !is LinearLayoutManager) {
            return
        }
        outRect.top = offset
    }
}

在我的MainActivity

val itemOffset = OffsetItemDecoration(-150, arrayOf(1, 5))
recycler_view.addItemDecoration(itemOffset)

其他获得相同效果的方法的建议也将受到赞赏

0 个答案:

没有答案