Android RecyclerView Fit使用自定义布局管理器查看5个不同高度和宽度的项目
首先,让我向您展示一幅我正努力实现的图像: 现在,从上面的gif开始,我需要用recyclerview构建它。 在屏幕上一次只能安装5个项目。 中心和其他4个项目将按图所示进行缩放 我已尝试使用自定义布局管理器,如下所示:Android RecyclerView Fit使用自定义布局管理器查看5个不同高度和宽度的项目,android,Android,首先,让我向您展示一幅我正努力实现的图像: 现在,从上面的gif开始,我需要用recyclerview构建它。 在屏幕上一次只能安装5个项目。 中心和其他4个项目将按图所示进行缩放 我已尝试使用自定义布局管理器,如下所示: private val shrinkAmount = 0.3f private val shrinkDistance = 1f override fun scrollVerticallyBy(dy: Int, recycler: RecyclerView.Recycler
private val shrinkAmount = 0.3f
private val shrinkDistance = 1f
override fun scrollVerticallyBy(dy: Int, recycler: RecyclerView.Recycler?, state: RecyclerView.State?): Int {
val orientation = orientation
if (orientation == VERTICAL) {
val scrolled = super.scrollVerticallyBy(dy, recycler, state)
if (isScaleView()) {
val midpoint = height / 2f
val d0 = 0f
val d1 = shrinkDistance * midpoint
val s0 = 1f
val s1 = 1f - shrinkAmount
for (i in 0 until childCount) {
val child = getChildAt(i)
val childMidpoint = (getDecoratedBottom(child!!) + getDecoratedTop(child)) / 2f
val d = Math.min(d1, Math.abs(midpoint - childMidpoint))
val scale = s0 + (s1 - s0) * (d - d0) / (d1 - d0)
child.scaleX = scale
child.scaleY = scale
}
}
return scrolled
} else {
return 0
}
}
但我得到的结果如下:
我怎样才能完全达到上面的效果