В моем RecyclerView
у меня есть изображение заголовка для каждой группы CardView
.Изображение расширяется под первым видом карты, чтобы создать приятный визуальный эффект.Я достиг этого, создав держатель представления заголовка изображения и установив смещение первого CardView
в каждой группе как отрицательное (используя ItemDecoration
).Однако, как вы можете видеть в нижней части экрана, CardView
исчезает до того, как полностью исчезнет с экрана.
Мой пользовательский элемент украшения
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)
Рекомендациидругие способы достижения того же эффекта будут также оценены