Android 卡片层叠效果

卡片层叠效果的实现:比如探探上的左滑右滑切换图片。
而现在我们要实现的卡片层叠以及滑动删除是通过RecyclerView的ItemTouchHelper工具来实现的,ItemTouchHelper这个工具是对RecyclerView列表的拖动排序和滑动删除进行了处理。ItemTouchHelper是继承了RecyclerView.ItemDecoration,我们可以发现ItemTouchHelper源码构造传递一个CallBack这个参数源码告诉用户需要控制视图的动作行为,所以就需要重新定义这个CallBack。

重新定义CallBack:

package zhangtao.bwie.com.recyclerveiw_cards;
import android.graphics.Canvas;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.helper.ItemTouchHelper;
import android.util.Log;
import android.view.View;
import java.util.List;
import Bean.SwipeCardBean;

public class SwipeCardCallBack extends ItemTouchHelper.SimpleCallback{
    private List<SwipeCardBean> alist;
    private UniversalAdapter madapter;
    private RecyclerView mrecy;

    public SwipeCardCallBack(List<SwipeCardBean> alist, UniversalAdapter universalAdapter, RecyclerView recy_card) {
         //即我们对哪些方向操作关心。如果我们关心用户向上拖动,可以将
         //填充swipeDirs参数为LEFT | RIGHT 。0表示从不关心。
 super(0, ItemTouchHelper.LEFT | ItemTouchHelper.UP | ItemTouchHelper.RIGHT | ItemTouchHelper.DOWN); this.alist = alist; this.madapter = universalAdapter; this.mrecy = recy_card; } @Override public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) { return false; } @Override public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) { //当已经滑动删除了的时候会被回掉--删除数据,循环的效果 SwipeCardBean remove = alist.remove(viewHolder.getLayoutPosition()); Log.d("zzz","card:data:"+remove.toString()); alist.add(0, remove); madapter.notifyDataSetChanged(); } @Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); //监听话滑动的距离
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值