我有一个水平回收者视图捕捉到中心位置。我想逐渐为中心项设置底部边距。它就像os x dock增长效果,但我不想扩大规模,我想推高。
我已经用动画完成了它,但这不是一个好结果,它们会在回收器视图滚动状态更改中被触发。
有人可以向我表明解决方案吗?
提前致谢
答案 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);
}
}
}