引用
This is a utility class to add swipe to dismiss and drag & drop support to RecyclerView.
它是一个非常强大的工具,感觉跟ViewDragHelper一样,不过ItemTouchHelper顾名思义是处理item的touch事件的.
它能够让你非常容易实现侧滑删除,拖拽的功能.
今天,就拿它来实现以下侧滑删除!~
开始
首先我们看下ItemTouchHelper的构造方法ItemTouchHelper(Callback callback) 它需要我们传入一个Callback
而刚好Android非常任性,已经帮我们实现了一个:SimpleCallback
甚至,在注释里已经给我们写好了样例!!!有兴趣的同学可以去看看,这里就不给出了.
接下来上代码!~
定义一个Adapter
这个adapter没什么特别的,挺简单的,相信大家会
public static class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> implements View.OnClickListener{
private Context mContext;
private List<String>mDatas;
public ListAdapter(Context context,List<String> data){
mDatas= data;
mContext = context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.material_list_item, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
holder.text.setText(mDatas.get(position));
holder.text.setTag(position);
holder.text.setOnClickListener(this);
}
@Override
public int getItemCount() {
return mDatas.size();
}
@Override
public void onClick(View v) {
TextView tv = (TextView) v;
Toast.makeText(mContext, tv.getText()+";;"+tv.getTag(), Toast.LENGTH_SHORT).show();
}
public static class ViewHolder extends RecyclerView.ViewHolder{
TextView text;
public ViewHolder(View view){
super(view);
text = (TextView) view.findViewById(R.id.iv_item);
}
}
}
定义一个RecyclerView
设置为垂直list的样式,并且与上面的Adapter关联
mRvList.setLayoutManager(new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false));
mRvList.setAdapter(mAdapter);
实例化一个ItemTouchHelper
再实例化ItemTouchHelper之前我们再看一下SimpleCallback的构造方法:
ItemTouchHelper.SimpleCallback(int dragDirs, int swipeDirs)
dragDirs 代表你想拖拽的方向
swipeDirs 你想滑动的方向
都分别有一下值,很好理解:
LEFT
RIGHT
START
END
UP
DOWN
动手
// 0 代表我不拖拽, ItemTouchHelper.RIGHT代表我往右滑动
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT) {
//在这个回调 我们处理滑动
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
Log.d(TAG, "onSwiped() called with " + "viewHolder = [" + viewHolder + "], direction = [" + direction + "]");
//这里我们通过viewHolder获取position
int position = viewHolder.getAdapterPosition();
mData.remove(position);
mAdapter.notifyItemRemoved(position);
Toast.makeText(getActivity(), "拆散的position:"+position, Toast.LENGTH_SHORT).show();
}
// 暂时不处理移动事件...
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
Log.d(TAG, "onMove() called with " + "recyclerView = [" + recyclerView + "], viewHolder = [" + viewHolder + "], target = [" + target + "]");
return false;
}
}).attachToRecyclerView(mRvList);
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0822/3349.html
http://blog.csdn.net/easion_zms/article/details/47147191
http://www.open-open.com/lib/view/open1435287807716.html
RecyclerView的拖动和滑动 第一部分 :基本的ItemTouchHelper示例
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0630/3123.html
RecyclerView的拖动和滑动 第二部分 :拖块,Grid以及自定义动画
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2015/0724/3219.html
非常易于使用的滑动删除库,用于Android的RecyclerView,支持水平方向和竖直方向的滑动删除。
http://www.open-open.com/lib/view/open1445773975085.html
分享到:
相关推荐
本文将深入讲解如何利用ItemTouchHelper来实现在RecyclerView中的侧滑拖拽功能,这是一种常见的交互设计,用户可以通过侧滑操作来完成诸如删除、标记等操作。 首先,我们要了解RecyclerView的基本结构。...
使用RecyclerView和ItemTouchHelper实现拖拽移动效果..........................................................................................................................................................
这时,我们就需要用到`ItemTouchHelper`,它是Android SDK提供的一种扩展RecyclerView功能的工具,能方便地实现拖放排序和滑动删除。 `ItemTouchHelper`类是Google官方推荐的处理RecyclerView中元素交互的方式,它...
在Android开发中,实现自定义交互效果是提升用户体验的关键步骤之一。本实战项目"实战ItemTouchHelper仿网易新闻客户端自定义栏目页面"旨在通过ItemTouchHelper实现类似网易新闻客户端的栏目页面拖拽功能,使用户...
本教程将介绍如何利用`ItemTouchHelper`这个工具类来实现RecyclerView中的拖动排序和滑动删除功能,使得用户交互更加直观和便捷。 首先,我们要了解`RecyclerView`的基本使用。RecyclerView通过`Adapter`来管理数据...
itemtouchhelper-extension This library add something for swipe item settling, recover base on the Itemtouchhelper. This used in the repo code-reader Download Sample Screenshot item swipe with spring ...
Android-ItemTouchHelper-Demo.zip,太多无法一一验证是否可用,程序如果跑不起来需要自调,部分代码功能进行参考学习。
在实际应用中,我们常常需要实现用户交互功能,比如频道排序和移动,这就涉及到了RecyclerView与ItemTouchHelper的配合使用。本文将详细讲解如何通过这两个组件实现类似今日头条的频道管理功能。 首先,我们要理解...
在这个过程中,`ItemTouchHelper`是一个非常实用的工具,它能帮助我们实现对`RecyclerView`中的元素进行拖放和滑动操作。本文将深入探讨`ItemTouchHelper`的实践应用,以及如何将其应用于新闻APP的频道管理功能。 `...
本项目"RecyclerView_ItemTouchHelper-master"聚焦于RecyclerView的一个高级特性:通过ItemTouchHelper实现拖拽排序和侧滑删除功能。 **一、RecyclerView** RecyclerView是一个强大的列表视图,它可以自定义适配器...
Android 作为移动应用开发的主要平台之一,具有广泛的应用前景。其中,RecyclerView 是 Android 中一个常用的 UI 组件,用于展示列表数据。然而,在实际开发中,我们经常需要实现侧滑删除和拖拽功能,以提高用户...
在这种情况下,ItemTouchHelper是Android SDK提供的一种方便的工具类,它可以帮助我们轻松实现这些交互效果。 ItemTouchHelper是一个辅助类,专门用于为RecyclerView添加滑动删除和拖放支持。它与RecyclerView和一...
ItemTouchHelper 的 demo 以及拓展,实现 RecycleView 的拖拽和滑动。http://blog.csdn.net/qq_18983205/article/details/78409931 对应代码
该项目为基于ItemTouchHelper的Android拖拽与侧滑删除功能实现设计源码,集成了66个文件,涵盖21个XML布局文件、13个PNG图标资源、12个JPEG图片资源、8个Java源代码文件以及若干配置和构建文件。项目旨在为用户界面...
笔者使用 RecyclerView 的 ItemTouchHelper 来实现这个效果,过程非常简单。为了学习,这里顺便实现了一下侧滑删除。 实现功能: 按住 item 左侧的按钮可以上下拖动 item 向右侧滑删除 item item 拖动或侧滑时有...
最新23.1.1 android-support-v7-recyclerview.jar,有ItemTouchHelper,导入eclipse用的,找了半天总算找到了
本篇文章将深入讲解如何使用RecyclerView结合ItemTouchHelper来实现这样一个功能。 首先,了解RecyclerView的基本用法。RecyclerView替代了旧版的ListView,提供了更灵活的布局管理器,如LinearLayoutManager、...