recyclerView различное расстояние между пунктами, используя масштаб - PullRequest
0 голосов
/ 07 марта 2020

Горизонтальная recyclerView ( DiscreteScrollView библиотека) с масштабированием, установленным на 50% между выбранным видом и другими, не оставляет интервалы одинаковыми. Пример ниже показывает, что интервалы между 1/2 и 4/5 более просторные, чем виды рядом с выбранным в данный момент элементом в центре. Это происходит постепенно при прокрутке, например, переход от элемента 3 к пункту 2 будет перемещать элемент 3/4 друг от друга, когда происходит onScroll.

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

Попытка:

override fun onScroll(
        scrollPosition: Float,
        currentPosition: Int,
        newPosition: Int,
        currentHolder: CurrencyAdapter.ViewHolder?,
        newCurrent: CurrencyAdapter.ViewHolder?
    ) {
            val layoutParams  = currentHolder.layout.layoutParams as ConstraintLayout.LayoutParams
        }
    }

производит

ClassCastException: androidx.recyclerview.widget.RecyclerView$LayoutParams cannot be cast to androidx.constraintlayout.widget.ConstraintLayout$LayoutParams

1. Можно ли манипулировать layoutParams из viewHolder?

2. Есть ли другие варианты установки фиксированного интервала?

РЕДАКТИРОВАТЬ: добавление DividerItemDecoration лучше показывает, откуда возникает проблема: DividerItemDecoration

3. Является ли ItemDecoration правильным направлением для устранения проблемы?

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