美文网首页
RecyclerView交互动画的实现

RecyclerView交互动画的实现

作者: 临窗听雨 | 来源:发表于2017-04-20 07:05 被阅读294次

    一、概述

    进一步学习Recyclerview,今天我们主要了解RecyclerView的辅助类,ItemTouchHelper。

    首先看下实现效果:

    二、主要实现功能点

    2.1、上图比较简单,从动态图可以分析出几个功能点:

         a,点击item左边图片,长按item,实现item条目的拖拽移动。

         c,上下移动item条目的时候,item位置互换,交互动画。

         d,左右侧滑,删除item,伴随透明度渐变

    三、项目结构,及代码分析

    3.1项目结构:

    3.2代码分析

    a、DataUtils主要是用来给QQAdapter填充数据.

    b、MainActivity中关键代码如下:

    首先是为recyclerview设置adapter,然后实例化ItemToucherHelper辅助类,和recyclerview关联起来,对其进行item条目的监听。ItemToucherHelper实例化时传入callback回调函数,这个回调函数是其内部类,对用户的item操作,动作进行监听。

    c、重点介绍下,MyItemTouchHelperCallback类。

    这个方法返回一个int类型的标识 表示哪些移动行为是被允许的,这里面处理的是上下移动和左右侧滑都可以。

    这个方法主要是是否允许长按拖拽。

    此方法用来监听处理用户上下拖拽移动操作,这个方法里,首先,判断是否是同一类型的item,不是的话,就返回false不处理,否则,调用回调接口,将源holder和目标holder的位置传入,然后再adapter中实现这个接口,进行数据的交换,和界面刷新及动画效果,实现item条目的拖拽移动,主要是在这个方法里面进行处理。


    这个方法,用来监听,用户的侧滑动作,里面调用接口的方法,由适配器QQAdapter进行调用,实现数据的删除,和界面刷新。


    这个方法里面设置用户选中时条目的背景颜色

    用户操作完成,还原时,对item背景颜色进行还原

    这个方法里,实现侧滑动画效果。

    d、自定义callback类的方法介绍完毕,再简单说下Adapter

    实现结构中的回调方法,完成相关操作,移动数据和删除数据。

    在onBindViewHolder方法中对条目左侧图片进行的触摸事件进行重写,处理向下触摸,开始拖动viewholder,这个接口方法在MainActivity中实现,由mItemToucherHelper调用。

    e、最后简单说先两个接口,一个,StartDragListener,一个OnMoveItemListener,StartDragListener里面有startDrag(ViewHolder hodler)方法,主要是条目的拖动的回调方法,OnMoveItemListener里面有moveItem(int fromposition,int toposition),和removeItem(int position),实现条目拖拽交互,和条目删除的回调。

    一般,两个类之间进行数据交互,都采用接口回调的方式。而不是直接传入另一个类的引用。


    分析完毕,代码地址:http://pan.baidu.com/s/1o7SwjKQ


    相关文章

      网友评论

          本文标题:RecyclerView交互动画的实现

          本文链接:https://www.haomeiwen.com/subject/uickzttx.html