实战ItemTouchHelper仿网易新闻客户端自定义栏目页面

转载请标明出处:
http://blog.csdn.net/zeeeeeeee/article/details/51458643

前天看了鸿洋大神推送的文章,发现了ItemTouchHelper这个东东~

真的是相见恨晚啊~

重拾起荒废已久的博客。。。。
其实自己有记笔记的习惯,慢慢整理下,跟大家分享!

这里写图片描述

之前做的项目就有类似的效果,搞得那是一把辛酸一把泪~

晚上忍不住,撸了一下,爽歪歪
来张效果图
这里写图片描述

基于RecyClerView + ItemTouchHelper实现,相当简单,关于ItemTouchHelper可以去网上搜索,或者去看下hongyang大神推送的那篇博客。

这里我就不再阐述了,为了方便使用,我对拖拽的一些操作进行了小小的封装。只需两步就可以轻松实现拖拽效果啦~

使用步骤

一、实现接口

为recyclerView的Adapter实现DragItemData接口,并实现其中的notifyItemRemoved和getDatas()方法

public  interface DragItemData{
    public List getDatas();
    public void notifyItemRemoved(int position);
}
二、初始化DragItemHelper
DragItemHelper mDragItemHelper = new DragItemHelper(mListRecyView,myListAdapter);

mListRecyView:目标RecyClearView
myListAdapter:实现DragItemData接口的Adapter

这样就可以实现简单的拖动效果啦,为了方便使用,对一些常用操作也封装了几个方法

 /**
     * 禁止拖动的Position
     * @param positions
     */
    public void addInvalidPos(Integer...positions){
        mDragItemCallback.addinvalidPositons(positions);
    }
/**
     *
     * @param islongPress
     *        true : 全部无法拖动
     *        fals : 清空所有不可拖动项
     */
    public void isLongPressDragEnabled(boolean islongPress){
  /**
     * 拖动开始和结束的回调
     * @param dragStateCallback
     */
    public void setDragStateCallback(DragItemCallback.DragStateCallback dragStateCallback){
        mDragItemCallback.setmDragStateCallback(dragStateCallback);
    }

这里写图片描述

源码下载地址

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值