由于RecyclerView是support-V7包中的新组件,使用时需要导入com.android.support:recyclerView-v7:21.0.2的依赖,它的任务是回收和定位屏幕上的View。列表项View能够显示数据还需要两个类的支持:ViewHolder子类和Adapter子类。
ViewHolder只做一件事:容纳View视图,创建ViewHolder子类示例如下:
Adapter负责的事情有:
1、创建必要的ViewHolder
2、 绑定ViewHolder至模型层数据(具体示例请看后面)
贝塞尔曲线主要用于二维图形应用程序中的数学曲线,曲线有起始点、终止点和控制点组成,同调整控制点来控制绘制贝塞尔曲线的形状,具体分析请参考文献:https://blog.csdn.net/monkey646812329/article/details/52841105?locationNum=2&fps=1
Ok,了解完什么是RecyclerView和贝塞尔曲线那就进入我们这次效果的实现吧
(一)首先,我在上次分享中做了调整,将右边显示的ListView换成了RecyclerView, 代码如图所示:
由于我们在列表项View(即item)中,需要使用内部监听+、-,所以我们需要重写Adapter来实现内部监听;本次效果中我们使用的Adapter是RecyclerView.Adapter的子类,它继承于RecyclerView.Adapter,通过重写onCreateView()和onBindViewHolder()方法实现列表View的创建和绑定,具体实现如下:
1、在自定义的Adapter中创建ViewHolder子类,代码如图所示:
2、在Onclick()中监听点击事件,代码如图所示:
3、创建完ViewHolder后,我们需要重写RecyclerView.Adapter中的onCreateViewHolder()和onBindViewHolder()来创建和绑定数据,代码如图所示:
4、由于Android中并没有给RecyclerView增进点击事件,所以我们需要自己使用接口回调机制,创建点击事件的接口,代码如图所示:
5、回到我们的orderActivity界面,在right_adapter()方法中使用我们自定义的Adapter, 代码如图所示:
(二)贝塞尔曲线的应用
1、获取起始坐标、控制坐标、终点坐标,代码如图所示
2、设置贝塞尔曲线的起始坐标、控制坐标、终点坐标,代码如图所示:
3、创建加入购物车过程中的图片或者绘制图形(加入过程中view的显示自己定),在这里所用的是图片,其中R.dimen.item_dish_cricle_size是创建在values中自定义的xml中
,代码如图所示:
4、根据二阶贝塞尔曲线的公式定义自己的插值器,代码如图所示
5、创建加入购物车的动画效果,代码如图所示:
6、创建购物车的缩放效果
7、最后别忘了移除视图
参考文献:https://blog.csdn.net/weixin_34306593/article/details/93218428