美文网首页
RecyclerView拖拉拽

RecyclerView拖拉拽

作者: 欲火逢生 | 来源:发表于2018-08-24 22:51 被阅读0次

RecyclerView拖拉拽,主要是使用RecyclerView结合ItemTouchHelper来实现的。

首先添加创建 ItemTouchHelper(new ItemTouchHelper.Callback() )对象,然后通过ItemTouchHelper调用attachToRecyclerView方法把RecyclerView控件放进去。

 ItemTouchHelper构造方法中需要一个CallBack对象,适用于拖拽或者剔除时的回调方法,所以我们主要是要重写CallBack中的相应方法,处理响应的逻辑

  首先来自定义一个CallBack类,继承与ItemTouchHepler.Callback()对象,重写3个重要方法,getMovementFlags(),onMove(), onSwiped().

getMovementFlags():这个方法是设置是滑动时间,以及拖拽的方向,所以在这里需要判断一下是列表布局还是网格布局,如果是列表布局的话则拖拽方向为DOWN和UP,如果是网格布局的话则是DOWN和UP和LEFT和RIGHT

onMove():在我们拖动的时候他会不断回调这个方法,在这里我们需要将正在拖拽的item和集合的item,通过getAdapterPosition()获取出来,然后进行交换,然后在通知适配器更新数据。

onSwiped()是替换后调用的方法,也可以不用管。

然后我们希望在拖拽的时候将被拖拽的Item高亮,这样用户体验要好很多,所以我们要重写CallBack对象中的onSelectedChanged()和clearView()方法,在onSelectedChanged()方法中设置选中长按Item的时候设置调背景色,在clearView()方法中设置完成的时候移除高亮背景色

但是实际功能中有可能存在,排头前两个的不需改变它的顺序,即有些item允许拖拽,有些则不允许,所以我们需要重写isLongPressDragEnabled()方法,return false.不允许长按拖拽,然后在reclcler的长按事件监听中进行判断调用,

相关文章

  • RecyclerView拖拉拽

    RecyclerView拖拉拽,主要是使用RecyclerView结合ItemTouchHelper来实现的。 首...

  • 拖拉拽例子

    例子 相关知识 draggable="true", 配置属性可以拖拉拽 在拖动目标上触发事件ondragstart...

  • iOS Swift 跳转传值

    建立项目,拖拉拽如下:

  • Xib的拖拉拽

    我很久没用Xib了,都是用纯代码。但是最近看了本《精通iOS开发的书籍》,里面说了些Xib思想,看后很想自己尝试着...

  • 怎样拽动RecyclerView的Item

    思路 首先我们知道,一个控件里的东西是不能拖出当前控件的范围之类的。 所以我们需要走个巧,在我们按下控件的时候把控...

  • Vue<表格拖拉拽>

    在网上找了很多资源和介绍,最后发现一个插件(vue-slicksort)挺好用的,所以就拿来练练,出个效果具体参考...

  • 夏天耕地

    农人告余以春及,将有事于西畴 或命汽车,或开拖拉机 或拽玉...

  • Android RecyclerView拖动滑拽的实现

    最近做项目遇到了需要拖动recyclerView的item,并且拖动后数据源也根据拖动顺序而变化,在此简单记录下。...

  • 青否小程序,拖拉拽正式上线

    拒绝模板化,自定义小程序,一拖二拉三拽。拽出一个''淘宝'',欢迎各位老板前来体验,免费,免费,免费,重要的事情要...

  • 使用pyecharts拖拉,拽,创建大屏展示

    如何使用pyeharts制作大屏展示或者数据驾驶舱,请按以下步骤进行制作:1.根据pyecharts的官方中文教程...

网友评论

      本文标题:RecyclerView拖拉拽

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