ReSwipeCard

本项目是在 CardSwipeLayout的基础上进行的修改,感谢原作者。

项目功能: - 解决滑动与点击事件冲突 - 增加硬件加速支持 - 滑动方向控制 - 滑出方向控制 - 滑出时间控制 - 滑出阈值 - 循环卡片 - 卡片堆叠方式 - 卡片数量 - 增加手动滑动

效果图如下所示,也可以直接下载跟根目录下的app-debug.apk查看:

使用方式

//项目中未使用RecyclerView

dependencies {

compile ('lin.jerrylin0322.reswipecard:reswipecard:1.0.0')

}

//如果项目中使用了RecyclerView:

dependencies {

compile ('lin.jerrylin0322.reswipecard:reswipecard:1.0.0') {

exclude module:'recyclerview-v7' }

}

maven:

lin.jerrylin0322.reswipecard

reswipecard

1.0.0

pom

代码中:

CardSetting setting=new CardSetting();

setting.setSwipeListener(new OnSwipeCardListener() {

@Override

public void onSwiping(RecyclerView.ViewHolder viewHolder, float dx, float dy, int direction) {

switch (direction) {

case ReItemTouchHelper.DOWN:

Log.e("aaa", "swiping direction=down");

break;

case ReItemTouchHelper.UP:

Log.e("aaa", "swiping direction=up");

break;

case ReItemTouchHelper.LEFT:

Log.e("aaa", "swiping direction=left");

break;

case ReItemTouchHelper.RIGHT:

Log.e("aaa", "swiping direction=right");

break;

}

}

@Override

public void onSwipedOut(RecyclerView.ViewHolder viewHolder, CardBean o, int direction) {

switch (direction) {

case ReItemTouchHelper.DOWN:

Toast.makeText(NormalActivity.this, "swipe down out", Toast.LENGTH_SHORT).show();

break;

case ReItemTouchHelper.UP:

Toast.makeText(NormalActivity.this, "swipe up out ", Toast.LENGTH_SHORT).show();

break;

case ReItemTouchHelper.LEFT:

Toast.makeText(NormalActivity.this, "swipe left out", Toast.LENGTH_SHORT).show();

break;

case ReItemTouchHelper.RIGHT:

Toast.makeText(NormalActivity.this, "swipe right out", Toast.LENGTH_SHORT).show();

break;

}

}

@Override

public void onSwipedClear() {

Toast.makeText(NormalActivity.this, "cards are consumed", Toast.LENGTH_SHORT).show();

}

});

CardTouchHelperCallback helperCallback = new CardTouchHelperCallback(mRecyclerView, list,setting);

mReItemTouchHelper = new ReItemTouchHelper(helperCallback);

CardLayoutManager layoutManager = new CardLayoutManager(mReItemTouchHelper, setting);

mRecyclerView.setLayoutManager(layoutManager);

CardAdapter cardAdapter = new CardAdapter(list);

mRecyclerView.setAdapter(cardAdapter);

在Adapter的item的xml中使用SwipeTouchLayout当做根布局:

xmlns:app="http://schemas.android.com/apk/res-auto"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:paddingBottom="30dp">

...

CardSetting

所有的参数变量都在CardSetting当中实现。

上下左右滑动控制,默认四个方向都可以滑动:

public int getSwipeDirection() {

return ReItemTouchHelper.LEFT | ReItemTouchHelper.RIGHT

| ReItemTouchHelper.UP |ReItemTouchHelper.DOWN;

}

去掉左边滑动的效果图如图所示:

上下左右滑出控制,默认四个方向都可以滑出:

public int couldSwipeOutDirection() {

return ReItemTouchHelper.LEFT | ReItemTouchHelper.RIGHT

| ReItemTouchHelper.UP |ReItemTouchHelper.DOWN;

}

去掉垂直方向的滑出效果图如图所示:

修改卡片堆叠方式,默认为从下往上:

CardConfig.java

public int getStackDirection() {

return ReItemTouchHelper.DOWN;

}

效果图:

是否循环,默认为循环:

public boolean isLoopCard() {

return true;

}

去掉循环的效果如下图所示:

自动滑动效果:

//direction=ReItemTouchHelper.LEFT or ReItemTouchHelper.RIGHT .etc

mReItemTouchHelper.swipeManually(direction);

卡片缩放递减的值,默认为0.1f:

public float getCardScale() {

return DEFAULT_SCALE;

}

卡片展示数量:

public int getShowCount() {

return DEFAULT_SHOW_ITEM;

}

移动过程中最大卡片旋转值:

public float getCardRotateDegree() {

return DEFAULT_ROTATE_DEGREE;

}

布局时卡片偏移量,第一张不偏移,随后递增,默认偏移量为14:

public int getCardTranslateDistance() {

return DEFAULT_TRANSLATE_Y;

}

是否开启硬件加速:

public boolean enableHardWare() {

return true;

}

控制滑出时间:

public int getSwipeOutAnimDuration() {

return 400;

}

控制滑动可以滑出的阈值,默认是RecyclerView的宽度*0.3f:

public float getSwipeThreshold() {

return 0.3f;

}

如果有任何的问题,可以在 Issues当中告诉我~

recyclerview探探_RecyclerView Item滑动特效 仿探探相关推荐

  1. 万科java_[Java教程]仿万科底部的新闻滑动特效

    [Java教程]仿万科底部的新闻滑动特效 0 2017-09-03 10:00:07 仿万科底部的新闻滑动特效: 仿万科的底部的新闻滑动特效 1 2 3 4 本文网址:http://www.shaoq ...

  2. Android中实现类似探探中图片左右滑动切换效果

    偶然之间发现探探的左右滑动的图片挺好玩,试着去做了下,再到后来,看到许多大神也推出了同样仿探探效果的博客,从头到尾阅读下来,写得通俗易懂,基本上没什么问题.于是,实现仿探探效果的想法再次出现在脑海中. ...

  3. html5做探探,基于Nuxt.js+Vue聊天实例|nuxt仿微信/探探聊天界面

    1.项目简介 Nuxt.js是目前比较热门的服务端渲染SSR框架.凭借其更好的SEO.更快的内容到达时间(*首屏渲染速度快*) 加之基于Vue.js技术开发,更易于上手,获得了很多技术开发者的青睐. ...

  4. nuxt-chat聊天室|vue仿微信/探探界面nuxt+vue+vuex|朋友圈

    Nuxt-Chatroom 基于Nuxt.js+Vue.js仿微信|探探App界面聊天社交 运用nuxt.js+vue.js+vuex+vpopup+vant+webpack等技术架构开发的社交聊天室 ...

  5. 仿万科底部的新闻滑动特效

    仿万科底部的新闻滑动特效: <!DOCTYPE html> <html lang="en"> <head><meta charset=&q ...

  6. 百度超级链数字藏品 仿鲸探数字藏品平台开发

    2022年1月,百度搜索非常链公布发布第一个数据藏品服务平台,特惠派发历史博物馆系列产品千手观音菩萨.纪念版北京天坛神兽.及特聘艺术家韩美林写作的风雪异彩.壬寅康祥等系列产品数据藏品.据统计,百度搜索 ...

  7. RecyclerView拖拽排序和滑动删除实现

    效果图 如何实现 那么是如何实现的呢?主要就要使用到ItemTouchHelper ,ItemTouchHelper 一个帮助开发人员处理拖拽和滑动删除的实现类,它能够让你非常容易实现侧滑删除.拖拽的 ...

  8. 深入理解 RecyclerView 的绘制流程和滑动原理,直面春招

    归纳分发布局的三个步骤: dispatchLayoutStep1():  表示进行预布局,适配器更新.动画运行.保存当前视图的信息等工作: dispatchLayoutStep2():  表示对最终状 ...

  9. Android 用HorizontalScrollView实现ListView的Item滑动删除 ,滑动错乱 冲突

    用HorizontalScrollView实现类似微信的滑动删除 测试于:Android2.2+ 对于Android来说按键操作已经在减少,越来越多的手势操作层出不穷,今天介绍一款LIstView的I ...

最新文章

  1. c语言表达式用法,C语言开发之运算符、表达式用法
  2. Java jvisualvm简要说明
  3. 009-mac下记事本工具 sublime text3
  4. linux开机和登陆欢迎信息
  5. C#遍历指定文件夹中的所有文件
  6. 外存中的对换区和文件区
  7. java编写八数码_java实现八数码
  8. 【C/C++】基本数据类型的隐式类型转换
  9. 交换排序图解_10大经典排序算法,20+张图就搞定
  10. mysql的数据类型5---enum与set类型
  11. 拓端tecdat|Prophet在R语言中进行时间序列数据预测
  12. vc++6.0常用插件和界面库
  13. Skype协议分析[0]_安装Skype
  14. 汉字区位码转换为“汉字ASCII码“
  15. Livereload介绍
  16. 班长投票小程序的java代码
  17. OOK调制解调的FPGA实现,求Verilog代码
  18. 漫漫Java学习路,第十四天
  19. 爬虫之js加密破解抓取网易云音乐评论生成词云
  20. 【不支持全功能typec的电脑如何一线直连便携屏】

热门文章

  1. AutoHotKey也能读取魔兽内存
  2. 大厂游戏美术开发全流程汇总 | 建模篇
  3. 欢迎使用CSDN-markdown编辑器ssss
  4. bresenham直线画法
  5. [Android实例] 手机点菜系统【附服务器源码,附日历,天气预报】
  6. STM32F407 两个SPI互相通信,SPI1与SPI2通信实验
  7. sopc设计一个液晶模块
  8. TeamViewer无法连接对方/正在初始化问题
  9. 输电杆塔导线地线比载计算,应力计算
  10. 为使用HD4XXX显卡的机器安装CentOS6.4