Масштабирующий элемент центра в RecyclerView - PullRequest
0 голосов
/ 04 февраля 2019

При прокрутке в RecyclerView я хочу добиться чего-то подобного: enter image description here

Где центральный элемент масштабируется больше, чем другие элементы.Я нашел способ масштабирования всех предметов или то, что называется эффектом карусели.Но это не то, что я хочу.Я хочу масштабировать только центральный элемент и оставить размер остальных элементов по умолчанию.

это то, что я нашел в других ответах:

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
            }
        }
    })
}

Как я уже сказал, это масштабируетсявсе видимые элементы, где я хочу только увеличить центральный элемент.

1 Ответ

0 голосов
/ 04 февраля 2019

Вы могли бы дать среднему ребенку различное масштабирование.

Рассчитайте среднего потомка из childCount и используйте для него другое масштабирование, чем другие.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...