前段时间产品经理出了一个卡列表展示效果,效果的大致样子是仿照华为门禁卡卡包效果,研究了一下大致效果出来了,但和华为比还有点差距,主要是动画不是很流畅,仅供大家参考指正,有好的优化方式也可以告诉我,大家共同学习。
效果如下:仿华为卡包列表展示效果-CSDN直播
大致思路是上下放2个listview,顶部的listview1始终只展示一个默认卡样,第二个listview2放在底部用于展示剩余卡片。当点击下部卡列表中的一项的的时候则设置成默认卡片,并摆放到第一个listview1中替换原有的默认卡。另外用到了手势,主要是为了上滑的时候把底部的listview2和listview1合并到一起,当合并到一起后点击其中任一项则把此项作为默认卡,其余的卡列表则下滑到底部。详见代码。
主要代码:
1.底部listview上移代码
//往上距离为负值 int distanceY = mLv2.getTop() - mLv1.getBottom(); ObjectAnimator mAnimator = ObjectAnimator.ofFloat(mLv2, "translationY", mLv2.getScrollY(), -distanceY); mAnimator.setDuration(500); mAnimator.start();
2.底部listview下移代码
//计算上移距离 往下一点为正值 int distance = height - mLv2.getBottom() - mLv1.getBottom(); ObjectAnimator mAnimator = ObjectAnimator.ofFloat(mLv2, "translationY", mLv1.getTop(), distance); mAnimator.setDuration(500); mAnimator.start();
下载地址:仿华为门禁卡包列表展示-Android文档类资源-CSDN下载
参考:android——仿网易今日头条等自定义频道listview 或者grideview等item上移到另一个view中 - shoneworn - 博客园