android:RecyclerView交互动画(上下拖动,移动端app开发

}

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

mMoveCallback.onItemMove(viewHolder.getAdapterPosition(), target.getAdapterPosition());

return true;

}

//侧滑的时候回调的方法

@Override

public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {

//监听侧滑;1.删除数据,2.调用adapter.notifyItemRemoved(position)

mMoveCallback.onItemRemove(viewHolder.getAdapterPosition());

}

//改变选中的Item

@Override

public void onSelectedChanged(RecyclerView.ViewHolder viewHolder, int actionState) {

//判断状态

if (actionState != ItemTouchHelper.ACTION_STATE_IDLE) {

viewHolder.itemView.findViewById(R.id.textview).setBackgroundColor(viewHolder.itemView.getContext().getResources().getColor(R.color.black));

}

super.onSelectedChanged(viewHolder, actionState);

}

//恢复改变选中的Item

@Override

public void clearView(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder) {

//恢复

viewHolder.itemView.findViewById(R.id.textview).setBackgroundColor(viewHolder.itemView.getContext().getResources().getColor(R.color.colorPrimary));

//透明度动画

viewHolder.itemView.setAlpha(1);//1~0

//缩放动画

viewHolder.itemView.setScaleX(1);//1~0

viewHolder.itemView.setScaleY(1);//1~0

super.clearView(recyclerView, viewHolder);

}

//在拖拽的时候做效果

@Override

public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {

//dx 水平方向移动的增量(负:向左;正:向右)范围:0~View.getWidth

float alpha=1 - Math.abs(dX) / viewHolder.itemView.getWidth();

if (actionState == ItemTouc

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值