水平对齐Recyclerview中的中心项目的下边距效果

时间:2016-12-02 17:54:25

标签: android android-recyclerview

我有一个水平回收者视图捕捉到中心位置。我想逐渐为中心项设置底部边距。它就像os x dock增长效果,但我不想扩大规模,我想推高。

enter image description here

我已经用动画完成了它,但这不是一个好结果,它们会在回收器视图滚动状态更改中被触发。

有人可以向我表明解决方案吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

经过很长一段时间我在这里分享我的解决方案,比我想象的更简单。我已经扩展了RecyclerView并覆盖onDraw方法,根据它们与中心的距离为RecyclerView的孩子设置边距。它不太清楚,但现在我没有时间让它变得更好,如果有人需要它,他可以看一看灵感

@Override
public void onDraw(Canvas c) {
    super.onDraw(c);

    int size = getChildCount();
    for (int i = 0; i < size; i++) {
       View v = getChildAt(i);
       int x = DisplayHelper.pxToDp(act, (int) v.getX());
       topMargin = x - startXCenter;
       if (topMargin < -100 || topMargin > 100) {
           topMargin = MAX_MARGIN;
       } else if (topMargin < 0) {
          topMargin *= -1;
       }
       topMargin = topMargin - MAX_MARGIN;
       if (null != v) {
          v.setY(topMargin);
       }
    }
}