При прокрутке в RecyclerView я хочу добиться чего-то подобного:
Где центральный элемент масштабируется больше, чем другие элементы.Я нашел способ масштабирования всех предметов или то, что называется эффектом карусели.Но это не то, что я хочу.Я хочу масштабировать только центральный элемент и оставить размер остальных элементов по умолчанию.
это то, что я нашел в других ответах:
override fun onAttachedToRecyclerView(recyclerView: RecyclerView) {
val snapHelper = LinearSnapHelper()
snapHelper.attachToRecyclerView(recyclerView)
recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() {
override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
val layoutManager = recyclerView.layoutManager!!
val midpoint = layoutManager.width / 2f
val distance = shrinkDistance * midpoint
for (i in 0 until layoutManager.childCount) {
val child = layoutManager.getChildAt(i)!!
val childMidpoint = (layoutManager.getDecoratedRight(child) + layoutManager.getDecoratedLeft(child)) / 2f
val d = Math.min(distance, Math.abs(midpoint - childMidpoint))
val scale = 1 + -shrinkAmount * d / distance
child.scaleX = scale
child.scaleY = scale
}
}
})
}
Как я уже сказал, это масштабируетсявсе видимые элементы, где я хочу только увеличить центральный элемент.