android:RecyclerView交互动画(上下拖动,35岁以上程序员求职没市场

本文详细介绍了如何在Android中实现RecyclerView的拖动(drag)和侧滑(swipe)交互,包括ItemTouchHelper Callback的使用,以及拖动和侧滑时的动画效果。同时,代码示例展示了如何在拖动过程中交换数据并更新UI,以及侧滑时的数据删除操作。
摘要由CSDN通过智能技术生成

import android.graphics.Canvas;

import android.support.v7.widget.RecyclerView;

import android.support.v7.widget.helper.ItemTouchHelper;

import tsou.cn.studyrecycler.R;

/**

  • Created by Administrator on 2018/10/11 0011.

*/

public class MyItemTouchHelperCallback extends ItemTouchHelper.Callback {

private ItemTouchMoveCallback mMoveCallback;

public MyItemTouchHelperCallback(ItemTouchMoveCallback callback) {

this.mMoveCallback = callback;

}

//Callback回调监听时先调用的,用来判断当前是什么动作,比如判断方向(监听哪个方向的拖动)

@Override

public int getMovementFlags(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {

//放向:up、down、left、right

//常量:

// int up = ItemTouchHelper.UP;//1 0x0001

// int down = ItemTouchHelper.DOWN;//2 0x0010

// int left = ItemTouchHelper.LEFT;

// int right = ItemTouchHelper.RIGHT;

//要监听的拖拽方向,不监听为0

int dragFlags = ItemTouchHelper.UP | ItemTouchHelper.DOWN;

//要监听的侧滑方向,不监听为0

// int swipeFlags = 0;

int swipeFlags = ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT;

int flags = makeMovementFlags(dragFlags, swipeFlags);

return flags;//即监听向上也监听向下

}

//是否允许长按拖拽

@Override

public boolean isLongPressDragEnabled() {

return true;

}

//移动的时候回调的方法(拖拽等)

@Override

public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {

if (viewHolder.getItemViewType() != target.getItemViewType()) {

return false;

}

//在拖拽的过程中不断地调用adapter.notifyItemMoved(from,to)

mMoveCallback.onItemMove(view

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值