recyclerview 用的较少,最近需要改版某个页面,效果见文末图片。RecyclerView+GridLayoutManager,一开始只是简单地设置offset,发现图片大小不一致。最后按照以下策略计算公式,设置每个元素的offset才得以圆满实现,有可能有更好的方案,目前我还不得知。
- X1+Y1+X2+Y2+……+Xn+Yn = 2*Ws+(n-1)*Wm
- X1=Ws
- Yn = Ws
- X1+Y1 = X2+Y2 =……Xn+Yn = D
- Y1+X2 = Y2+X3 =……Yn-1+ Xn = Ws
由4 得到:
- Xi = D-Yi
由1&4 得到:
- nD = 2*Ws+(n-1)*Wm
由4&5 得
- Xi+1 - Xi = Wm-D 等差数列
所以:
- Xi = X1+ i*(Wm-D)/n
至此,可得到 左右偏移量公式。依据此公式在getItemOffsets计算即可。
效果图: