首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏韩曙亮的移动开发专栏

    【RecyclerView】 十五、使用 ItemTouchHelper 实现 RecyclerView 拖动排序 ( ItemTouchHelper 简介 )

    文章目录 一、ItemTouchHelper 简介 二、RecyclerView 相关资料 一、ItemTouchHelper 简介 ---- 官方文档 : https://developer.android.google.cn /reference/kotlin/androidx/recyclerview/widget/ItemTouchHelper ItemTouchHelper 可以为 RecyclerView 添加 滑动删除效果 和 拖动效果 ; ItemTouchHelper 需要与 RecyclerView 和 ItemTouchHelper.Callback 结合起来使用 ; 根据想要开发的功能 , 重写不同的方法 ; 如果是想要开发拖动效果相关的功能 , 重写 ItemTouchHelper.Callback 的 onMoved 方法 ; public abstract boolean onMove( 需要与 LayoutManager 布局管理器结合使用 ; 通过 继承 ItemTouchHelper.Callback 抽象类 , 或 实现 ItemTouchHelper.Callback 接口

    1.4K00编辑于 2023-03-28
  • 来自专栏android技术

    Android--ItemTouchHelper基本用法

    ItemTouchHelper是谷歌提供的用于实现Recyclerview 拖拽效果的帮助类,今天我们来学习下它的基本用法 首先ItemTouchHelper需要实现它的一个内部抽象类CallBack public class ItemTouchHelperCallback extends ItemTouchHelper.Callback { private IMoveAndSwipeCallback | ItemTouchHelper.DOWN; //item支持左滑 final int swipeFlags = ItemTouchHelper.LEFT; itemTouchHelper = new ItemTouchHelper(itemTouchHelperCallback); itemTouchHelper.attachToRecyclerView ItemTouchHelper.gif 项目地址:https://gitee.com/aruba/RecyclerViewApplication.git

    1.6K10发布于 2020-07-02
  • 来自专栏android技术

    Android--ItemTouchHelper源码分析

    ItemTouchHelper的基本使用上次已经介绍了,今天来分析下ItemTouchHelper的源码,我们从attachToRecyclerView方法入手 /** * Attaches the ItemTouchHelper to the provided RecyclerView. which you want to add this helper or * {@code null} if you want to remove ItemTouchHelper 继承ItemDecoration干了什么,发现ItemTouchHelper改写了onDraw和onDrawOver方法 /** * 该方法在recyclerView的draw方法中调用 = ItemTouchHelper.ACTION_STATE_DRAG) { draw(c, recyclerView, view, dX, dY);

    1.1K20发布于 2020-07-02
  • 来自专栏韩曙亮的移动开发专栏

    【Android 事件分发】ItemTouchHelper 简介 ( 拖动滑动事件 | ItemTouchHelper.Callback 回调 )

    简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 ) 【Android 事件分发】ItemTouchHelper 实现侧滑删除 ( 设置滑动方向 | 启用滑动操作 , 响应这些事件 ; 初始化 RecyclerView 并设置 ItemTouchHelper 示例 : //1 . 自定义实现 ---- 其中的 ItemTouchHelper.Callback 一般都需要开发者自定义子类实现 ; 1、设置移动标志 ( 拖动/滑动 ) 重写 ItemTouchHelper.Callback = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; // 应用 拖动 和 滑动 设置 return makeMovementFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; // 应用 拖动 和 滑动 设置 return makeMovementFlags

    2.4K10编辑于 2023-03-29
  • 来自专栏lib库

    ItemTouchHelper 实现交互动画

    上下拖动时与其他item进行位置交换 ItemTouchHelper.Callback本身不具备将两个item互换位置的功能,但RecyclerView可以,我们可以在item拖动的时候把当前item与另一个 | ItemTouchHelper.RIGHT | ItemTouchHelper.UP | ItemTouchHelper.DOWN; | ItemTouchHelper.DOWN; dragFlag = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; | ItemTouchHelper.DOWN; swipeFlag = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; itemTouchHelper = new ItemTouchHelper(callback); try{ //关联recyclerView,一个helper对象只能对应一个recyclerView

    4.6K20发布于 2020-02-14
  • 来自专栏韩曙亮的移动开发专栏

    【Android 事件分发】ItemTouchHelper 实现拖动排序

    简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 ) 【Android 事件分发】ItemTouchHelper 实现侧滑删除 ( 设置滑动方向 | 启用滑动操作 回调类 3、执行效果 三、博客资源 一、ItemTouchHelper.Callback 配置侧滑删除 ---- 1、设置移动标志 ( 拖动/滑动 ) 重写 ItemTouchHelper.Callback 的 getMovementFlags 方法 , 在该方法中设置滑动/拖动标志位 ; 滑动 / 拖动 标志 , 可使用 ItemTouchHelper.UP , ItemTouchHelper.DOWN , ItemTouchHelper.LEFT , ItemTouchHelper.RIGHT , 进行或操作得到 ; // 设置拖动方向, 此处设置上下拖动事件 int = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; 再将 拖动标志 和 滑动标志 传入 makeMovementFlags 方法 , 得到一个移动标志位 ,

    2.9K10编辑于 2023-03-29
  • 来自专栏韩曙亮的移动开发专栏

    【Android 事件分发】ItemTouchHelper 实现侧滑删除

    简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 ) 【Android 事件分发】ItemTouchHelper 实现侧滑删除 ( 设置滑动方向 | 启用滑动操作 回调类 3、执行效果 三、博客资源 一、ItemTouchHelper.Callback 配置侧滑删除 ---- 1、设置移动标志 ( 拖动/滑动 ) 重写 ItemTouchHelper.Callback 的 getMovementFlags 方法 , 在该方法中设置滑动/拖动标志位 ; 滑动 / 拖动 标志 , 可使用 ItemTouchHelper.UP , ItemTouchHelper.DOWN , ItemTouchHelper.LEFT , ItemTouchHelper.RIGHT , 进行或操作得到 ; // 设置拖动方向, 此处设置上下拖动事件 int = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; 再将 拖动标志 和 滑动标志 传入 makeMovementFlags 方法 , 得到一个移动标志位 ,

    1.2K20编辑于 2023-03-29
  • 来自专栏android技术

    Android--利用ItemTouchHelper实现RecyclerView的侧滑删除

    上次分析源码,我们知道,ItemTouchHelper对被选中的ViewHodler进行动画操作都是通过ItemTouchUIUtilImpl这个类,我们想要实现侧滑删除,必定需要对ViewHodler 进行平移操作,ItemTouchHelper.Callback通过onChildDraw方法调用了ItemTouchUIUtilImpl中的方法,所以我们改写onChildDraw方法 @Override recyclerview.gif 但是,我们的item并不能获取点击事件,因为ItemTouchHelper并没有把事件传递给子控件,解决方法:把ItemTouchHelper复制到自己的项目中!

    4.5K40发布于 2020-07-02
  • 来自专栏韩曙亮的移动开发专栏

    【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView )

    简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 ) 【Android 事件分发】ItemTouchHelper 实现侧滑删除 ( 设置滑动方向 | 启用滑动操作 系列文章目录 一、ItemTouchHelper 事件分发源码分析入口 二、ItemTouchHelper 绑定 RecyclerView 源码分析 1、ItemTouchHelper.attachToRecyclerView 事件分发源码分析入口 ---- ItemTouchHelper 使用时 , 是为 ItemTouchHelper 设置一个 RecyclerView 列表 , 不是给 RecyclerView 设置一个 ItemTouchHelper ; //4. 中实现 , 要研究其中的事件分发原理 , 主要分析 ItemTouchHelper 中的源码即可 ; 二、ItemTouchHelper 绑定 RecyclerView 源码分析 ---- 1、ItemTouchHelper.attachToRecyclerView

    72120编辑于 2023-03-29
  • 来自专栏俞其荣的博客

    RecyclerView实现拖拽排序和侧滑删除

    创建 ItemTouchHelper 创建一个 ItemTouchHelper 对象,然后其调用 attachToRecyclerView 方法: RecyclerView recyclerView = ); 在创建 ItemTouchHelper 对象时候,需要我们传入一个实现了 ItemTouchHelper.Callback 接口的对象。 实现 ItemTouchHelper.Callback 接口 创建 MyItemTouchCallback 类,实现 ItemTouchHelper.Callback 接口: public class | ItemTouchHelper.UP | ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT; swipeFlag = 0; } else { dragFlag = ItemTouchHelper.DOWN | ItemTouchHelper.UP; swipeFlag =

    1.6K30编辑于 2022-07-28
  • 来自专栏程思阳的专栏

    Android笔记: 使用RecyclerView打造可拖拽的GridView

    以下是RecyclerView结合ItemTouchHelper实现的列表和网格布局的拖拽效果。 主要就要使用到ItemTouchHelperItemTouchHelper 是support-v7包中加入的一个帮助开发人员处理拖拽和滑动的实现类,它能够让你非常容易实现侧滑删除、拖拽的功能。 我们只需要实例化一个ItemTouchHelper,然后关联到RecyclerView就OK了: itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback ()); itemTouchHelper.attachToRecyclerView(recyclerView); 构造方法中需要一个ItemTouchHelper.Callback,ItemTouchHelper | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; final int swipeFlags

    2.5K31编辑于 2022-01-11
  • 来自专栏thinkphp+vue

    怎么简单实现菜单拖拽排序的功能

    1、效果2、简介本文主角是ItemTouchHelper。它是RecyclerView对于item交互处理的一个「辅助类」,主要用于拖拽以及滑动处理。 or ItemTouchHelper.UP or ItemTouchHelper.RIGHT or ItemTouchHelper.DOWN return makeMovementFlags or ItemTouchHelper.DOWN swipeFlags = ItemTouchHelper.START or ItemTouchHelper.END val dragCallBack = DragCallBack(mAdapter, list) val itemTouchHelper = ItemTouchHelper(dragCallBack ItemTouchHelper(dragCallBack) itemTouchHelper.attachToRecyclerView(mBinding.recycleView)复制代码实例化

    1.7K30编辑于 2022-07-27
  • 来自专栏程序员修炼之路

    Android如何简单快速实现RecycleView的拖动重排序功能

    要实现这个拖动重排序功能,主要是用到了RecycleView的ItemTouchHelper类 首先是定义一个接口 interface ItemTouchHelperAdapter { fun items, i, i - 1) } } notifyItemMoved(fromPosition, toPosition) } } 实现ItemTouchHelper 的Callback接口方法 class SimpleItemTouchHelperCallback(private val adapter: ItemTouchHelperAdapter) : ItemTouchHelper.Callback or ItemTouchHelper.RIGHT return makeMovementFlags(dragFlags, 0) } override fun onMove or ItemTouchHelper.RIGHT 如果是竖直方向上拖动,则是用 ItemTouchHelper.UP or ItemTouchHelper.DOWN 最后绑定到我们的RecycleView

    54610编辑于 2024-06-24
  • 来自专栏叽叽西

    RecycleView

    ItemTouchHelper用法: // COMPLETED (3) Create a new ItemTouchHelper with a SimpleCallback that handles directions // Create an item touch helper to handle swiping items off the list new ItemTouchHelper (new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) { / mAdapter.swapCursor(getAllGuests()); } //COMPLETED (11) attach the ItemTouchHelper

    44520编辑于 2022-05-17
  • 来自专栏移动开发专栏

    怎么简单实现菜单拖拽排序的功能

    or ItemTouchHelper.UP or ItemTouchHelper.RIGHT or ItemTouchHelper.DOWN return makeMovementFlags or ItemTouchHelper.DOWN swipeFlags = ItemTouchHelper.START or ItemTouchHelper.END val dragCallBack = DragCallBack(mAdapter, list) val itemTouchHelper = ItemTouchHelper(dragCallBack = ItemTouchHelper(dragCallBack) itemTouchHelper.attachToRecyclerView(mBinding.recycleView) 实例化 ItemTouchHelper,然后调用其attachToRecyclerView方法绑定到RecyclerView。

    1.8K40编辑于 2022-09-19
  • 来自专栏Android先生

    RecyclerView 梳理:点击&长按事件、分割线、拖曳排序、滑动删除

    当然,今天我们不涉及其他地方的使用) 实现的代码并关联到 RecyclerView 非常简单,代码如下: ItemTouchHelper itemTouchHelper = new ItemTouchHelper 需要我们关注的是创建 ItemTouchHelper 时传入的参数 ItemTouchHelper.Callback() 。 | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; int swipeFlags | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; int swipeFlags | ItemTouchHelper.DOWN; //注意:和拖曳的区别就是在这里 int swipeFlags = ItemTouchHelper.START | ItemTouchHelper.END

    4.2K30发布于 2018-08-07
  • 来自专栏韩曙亮的移动开发专栏

    【Android 事件分发】ItemTouchHelper 源码分析 ( OnItemTouchListener 事件监听器源码分析 )

    简介 ( 拖动/滑动事件 | ItemTouchHelper.Callback 回调 ) 【Android 事件分发】ItemTouchHelper 实现侧滑删除 ( 设置滑动方向 | 启用滑动操作 | 滑动距离判定 | 滑动速度判定 | 设置动画时间 | 设置侧滑触发操作 ) 【Android 事件分发】ItemTouchHelper 实现拖动排序 ( 设置滑动方向 | 启启用长按拖动功能 | 拖动距离判定 | 设置拖动触发操作 ) 【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView ) 【Android 事件分发】ItemTouchHelper 涉及到的本博客相关源码 四、博客资源 一、OnItemTouchListener 事件监听器引入 ---- 在上一篇博客 【Android 事件分发】ItemTouchHelper 事件分发源码分析 ( 绑定 RecyclerView ) 分析了 ItemTouchHelper 添加时 , 调用了 mItemTouchHelper.attachToRecyclerView(recycler_view

    2.6K20编辑于 2023-03-29
  • 来自专栏Android Note

    RecycleView的拖动排序

    因为RecycleView提供了拖动的回调ItemTouchHelper.Callback,通过实现该类,会让我们少写很多代码。 先看一下,简化后的Demo效果图。 ? 这里的实现的效果是: ① 第一个标签不可编辑 ② 除了第一个标签外,其它标签可拖拽排序和删除 ItemTouchHelper.Callback的实现类 public class ItemDragCallback extends ItemTouchHelper.Callback { private ChannelAdapter mAdapter; private boolean mEdit; | ItemTouchHelper.DOWN | ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT; int swipeFlags = 0; helper = new ItemTouchHelper(callback); helper.attachToRecyclerView(mRecyclerView); 到这里就结束了。

    1.9K20发布于 2018-07-02
  • 来自专栏Android知识点总结

    3-VII-RecyclerView的item操作

    br/> * 邮箱:1981462002@qq.com
    * 说明:RecyclerView条目回调 */ public class ItemTouchCallback extends ItemTouchHelper.Callback RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) { //可向上下拖动 int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN; //可向左滑动 int swipeFlags = ItemTouchHelper.LEFT; return layoutManager = new LinearLayoutManager(this); MyAdapter adapter = new MyAdapter(mData, this); //实例化ItemTouchHelper ItemTouchHelper touchHelper = new ItemTouchHelper(new ItemTouchCallback(adapter)); //调用ItemTouchHelper

    94270发布于 2018-09-29
  • 来自专栏猿份到

    仿网易栏目添加功能

    其实就是利用RecycleView和ItemTouchHelper这两个类来实现上面的效果 好了,内容正式开始…… 1、添加依赖包 (app)build.gradle implementation 'com.android.support 5、ItemTouchHelper 还记得上面我所说的一个类吗? ItemTouchHelper对,没错就是这个,根据官方说明如下: /** * This is a utility class to add swipe to dismiss and drag & drop } class or implementing {@link ItemTouchHelper.ViewDropHandler} * interface in your LayoutManager *

    * By default, ItemTouchHelper moves the items' translateX/Y properties to reposition them.

    1.6K80发布于 2018-03-09
领券