RecycleView实现图片拖拽

这两天搞了个朋友圈选完图片可以拖拽调换位置的功能,自己挖了很多坑,慢慢填上,记一下。。。。。。

recyclerView添加Item移动,给你的recycleview设置Adapter适配器,我就不贴代码了,很简单的东西,这里要注意的是把数据源(图片的路径)传进来。

简单的说一个地方

public final void notifyItemMoved(int fromPosition, int toPosition) {
    mObservable.notifyItemMoved(fromPositiontoPosition);
}

RecycleView中的这个方法是实现了拖拽时滑动的效果

Collections.swap(imagePaths, srcPosition, targetPosition);

而这个java类中的swap方法是实现了两张图片位置的对调。。。这个坑,我跳了一下午。

这里要说一点,不懂的地方就去看源码。一开始很难看懂源码,毕竟都是英文的,但是!!!

不懂得地方可以去百度,看懂了源码再去解决问题就没毛病了

 

 // 互换数据源中的数据Item的位置
  Collections.swap(imagePaths, srcPosition, targetPosition);
  adapter.notifyDataSetChanged();

 

这个是让两个图片位置对调,比较直观

RecycleView实现图片拖拽_第1张图片

String str = imagePaths.get(srcPosition);
imagePaths.remove(srcPosition);
imagePaths.add(targetPositionstr);
// 更新UI中的Item的位置,主要是给用户看到交互效果
adapter.notifyItemMoved(srcPositiontargetPosition);

这种是先把我选中的图片位置清楚,再把它插入到目标位置。

RecycleView实现图片拖拽_第2张图片

 

 

https://www.jianshu.com/p/4fd325786061  这个是recycleview怎么实现item的拖拽。

 

http://blog.csdn.net/qq924862077/article/details/48022135  这个Collections包装类 的解释。 


你可能感兴趣的:(Android)