Горизонтальная 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 правильным направлением для устранения проблемы?