首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Android使用RecycleView实现拖拽交换item位置

相比起ListView而言,RecycleView实现拖拽交换位置效果要简单很多,因为通过SDKItemTouchHelper工具类可以轻松实现这种效果,并且一套代码支持所有布局方式;而ListView...的话则需要通过生成View缓存镜像设置到ImageView,然后通过WindowManager来操作该ImageView,具体怎么实现这里就不展开讲解了.回归到ItemTouchHelper话题上,...,通常用于清除在onSelectedChanged,onChildDraw对View设置动画 public void clearView(RecyclerView recyclerView, ViewHolder...状态通知到RecycleViewAdapter,为了达到解耦目的,通常可以通过定义接口来实现,在SimpleItemTouchHelperCallback构造方法传入该解耦接口引用,并让RecycleView...source, RecyclerView.ViewHolder target) { //通过接口传递拖拽交换数据起始位置和目标位置ViewHolder mAdapter.onItemMove

2.7K32
您找到你想要的搜索结果了吗?
是的
没有找到

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

ItemTouchHelper.Callback,ItemTouchHelper会在拖拽或剔除时候回调Callback相应方法,我们只需在Callback实现自己逻辑就可以了。...如果我们设置了非0dragFlags ,那么当我们长按item时候就会进入拖拽并在拖拽过程不断回调onMove()方法,我们就在这个方法里获取当前拖拽item和已经被拖拽到所处位置itemViewHolder...到这里,已经可以拖拽了,但是拖拽时候我们拖拽对象不能高亮显示,这是不友好,我们希望拖拽Item在拖拽过程背景颜色加深,这样就需要继续重写下面两个方法: //当长按选中item时候(..., RecyclerView.ViewHolder viewHolder) { } 我们在开始拖拽时候给item添加一个背景色,然后在拖拽完成时候还原: @Override...原来如此,我们可以在item长按事件得到当前itemViewHolder ,然后调用ItemTouchHelper.startDrag(ViewHolder vh)就可以实现拖拽了,那就这么办:

1.4K31

RecycleView终极封装(添加头、尾)

今天给大家带来一个对于Recycleview终极封装包含头、尾。 背景 Recycleview可以说是我们最常用控件之一,只要有列表几乎就会用到。...但是有没有因为每次要重写一大堆一样相同代码而感到烦恼和厌倦,我们就想到能不能把相同内容进行封装,答案当然是可以,根据我们目前项目里需求,又加上了头、尾布局。...代码实现 头布局 头布局没什么可说,在ListView当中可以直接通过addHeaderView()进行添加头布局,但是对于Recyclerview当中,并没有这种直接添加头布局方法,那么我们就需要通过...尾布局 尾布局,我们设定有三种不同模式,这个在我们下拉加当中可能遇到情况 1.自动加载 AUTO_LOAD 2.加载到底 LOAD_END 3.加载失败 LOAD_ERROR 根据不同布局我们设置了不同提示语...(>﹏<) 卖力加载~ <string name="list_index_loading_end

86020

构建BaseRecyclerAdapter,RecyclerView其实很简单

首先我们先看一下需求: 继承后可以舍去大量重复复制粘贴操作 自动契合不同Bean 有用点击监听和长按监听 指定位置对列表进行增删改 自带上拉加载监听 实现思路;   首先为了契合不同bean,泛型肯定是必不可少...基本Adapter就搭建完成了。...利用接口回调方式实现Item点击事件以及长按监听。最后指定项增删改,可以自定义方法,通过notifyItem...()方法实现。...* firstVisibleItem=页面显示第一个ItemPosition * visibleItemCount=页面显示Item数量 * totalItemCount...=总共Item数量 * previousTotal=与totalItemCount做比较,用于判断是否可以执行加载 * loading=是否处于加载 * currentPage

58130

Kotlin入门(23)适配器进阶表达

为方便理解循环适配器Kotlin编码,下面以微信公众号消息列表为例,给出对应消息列表Kotlin代码: //ViewHolder在构造时初始化布局控件对象 class RecyclerLinearAdapter...onItemLongClick(v, position)             true         }     }     //ItemHolder属性在构造时初始化     inner...根据这种设计思路,提取出了循环视图基础适配器,它Kotlin代码如下所示: //循环视图基础适配器 abstract class RecyclerBaseAdapter<VH : RecyclerView.ViewHolder...    //绑定视图持有者各个控件对象,需要子类重写     override abstract fun onBindViewHolder(holder: RecyclerView.ViewHolder...这下不管是在Activity代码,还是在适配器代码,均可将控件名称拿来直接调用了。

1.8K41

Android RecycleView添加head配置封装实例

Android RecycleView添加head配置封装实例 这个是把RecycleView适配器给封装了,直接调用就可以了,还添加了可以添加head头部功能,很赞,今天记下来,下次直接用 实例代码...} public interface OnItemClickListener<T { void onItemClick(int position, T data); } } 然后在外面自己适配器中直接继承就可以了...View itemView) { super(itemView); text = (TextView) itemView.findViewById(R.id.text); } } } 然后在类调用...layout_centerInParent="true" android:text="数据"/ </RelativeLayout 以上就是Android RecycleView添加head配置封装实例...,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站支持!

49020

RecyclerView实现混合布局

表示当前是第几个Item,然后我们可以通过position拿到当前Item对象,然后判断这个item对象需要那种视图,返回一个int类型视图标志,然后在onCreatViewHolder方法给引入布局...步骤: 1:item布局文件(xml) 2:itembean类(第二个方法写一个) 3:自定义ViewHolder类继承RecyclerView.ViewHolder 4:自定义adapter继承...方法: 你可以写多个list来存放不同数据,但是如果是多个的话,返回数据就一串字符串,你不仅要挑出来,还要存放在多个list里面,下次下拉刷新时还要在多个list累加数据,这样就有点麻烦了 不挑出来直接就只判断...type,然后根据type去调用不同layout,然后在绑定数据方法再次判断是不是自己想要ViewHolder,最后赋值显示。...(View view);这个方法是自定义需要继承RecyclerView.ViewHolder public class TypeViewHolderOne extends RecyclerView.ViewHolder

2.1K20

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

事件分发】事件分发源码分析 ( 驱动层通过中断传递事件 | WindowManagerService 向 View 层传递事件 ) 【Android 事件分发】事件分发源码分析 ( Activity 各层级事件传递...从布局获取 RecyclerView recycler_view = findViewById(R.id.recycler_view); //2 ....方法 ; 该方法用于设置上下左右动作 , 只有在此处打开了指定方向设置 , 才可以应用具体方向拖动 , 动作有两种 , 一种是滑动 , 如左右侧滑 ; 一种是拖动 , 长按后激活拖动操作 , 可用于拖动交换位置操作...public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder...从布局获取 RecyclerView recycler_view = findViewById(R.id.recycler_view); //2 .

1.5K10

Recyclerview添加头布局和尾布局、item点击事件详解

简介: 本篇博客主要包括recyclerview添加多种布局以及添加头布局和尾布局,还有item点击事件 思路: 主要重写Recyclerview.Adapter一些方法   1.public...) 根据viewType不同返回不同viewholder   5.public void onBindViewHolder(RecyclerView.ViewHolder holder, int position...) 根据holder不同绑定不同数据 案例: 主布局只有一个Recyclerview,里面的item除了基本两种类型,还有头布局和尾布局,点击基本类型跳转到另外一个Activity,显示图片...下面主要贴出Adapter和MainActivity代码,其他布局文件,类比较简单就不贴出了 1.Adapter public class MyAdapter extends RecyclerView.Adapter...,希望对大家学习有所帮助。

1.3K41

3-VII-RecyclerViewitem操作

点击添加、左滑删除、长按移动交换 RecyclerViewitem.gif 1、Item 操作接口 /** * 作者:张风捷特烈 * 时间:2018/9/17 0017:14:18... * 邮箱:1981462002@qq.com * 说明:Item 操作接口 */ public interface ItemChangeAdapter {...to) { //交换位置 ToastUtil.showAtOnce(mContext,"已交换:"+mData.get(from)+"和"+mData.get(to)+"位置...ItemTouchHelper touchHelper = new ItemTouchHelper(new ItemTouchCallback(adapter)); //调用ItemTouchHelperattachToRecyclerView...widget.CardView> 后记、 1.声明: [1]本文由张风捷特烈原创,转载请注明 [2]欢迎广大编程爱好者共同交流 [3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正 [4]你喜欢与支持将是我最大动力

70170

可展开Recyclerview适配器支持Header、Footer、Empty、LoadMore

前言 Android RecyclerView适配器。面对各种列表需求,急需要梳理一下,抽象出一个快速开发列表适配器,减小代码量,提高开发效率。...可展开Adapter支持功能如下: 支持两行可展开能力(单一类型适配) 支持空状态; 支持Header、Footer适配 LoadMore适配 使用类:BaseExpandableRecyclerViewAdapter...对应onCreateGroupViewHolder和onCreateChildViewHolder、onBindGroupViewHolder和onBindChildViewHolder public...其中将Group和Child也当作为一种类型进行区分,根据position、及group和child数量可以计算出折叠或者展开之后位置。...onBindChildViewHolder (4)抽象出BaseGroupBean,包含getChildCount、getChildAt、isExpandable方法 (5)在onCreateViewHolder根据

71110
领券