为了账号安全,请及时绑定邮箱和手机立即绑定

拖拽RecyclerViewDemo

标签:
Android

头部recycleView和底部recycleView。头部的recycleView。是横向布局的,底部的recycleView。是纵向布局的;

5b9602f60001eb4803130465.jpg

二:每个布局都有确定的方向:

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);

这个是头部的水平方向;

下面网格布局的。布局方向是可以控制是否滑动的。并且可以控制布局方向的。的自定义的LayoutManager

5b9602f60001167505920211.jpg


3接下来是适配器。适配器有三个方法要实现的。

onCreateViewHolder这个是实现Holder的获取
onBindViewHolder:这个是从holder获取控件来显示
getItemCount:数据源的size
这个是可选的,但是也经常用到
getItemViewType每个item显示的类型值;
4接下来。就是控制拖动的效果的显示效果了;
recycleview_longpress.setOnTouchListener()这里设置长点击的时候,一些文字的显示效果,和抬起删除的时候,数据源的变化;
//为RecycleView绑定触摸事件
ItemTouchHelper
实现触摸的滑动。isLongPressDragEnabled:
返回的是一个boolean值,当boolean值为true时,下面的makeMovementFlags方法的dragFlags值才会起效,它具有上下拖动作用,返回false时则没有任何效果。
isItemViewSwipeEnabled返回的也是一个boolean值,它和isLongPressDragEnabled类似。不同的是它控制的是左右滑动效果。
getMovementFlags方法返回的是一个int值,这个int值主要是makeMovementFlags(int 
dragFlags, int swipeFlags)方法返回的int值,其中makeMovementFlags需要传递两个参数dragFlags和swipeFlags。dragFlags和swipeFlags是通过下面几种方式结合
onMove方法,主要是拖动的时候,可以在这里监听进行数据更新的操作
onSwiped方法,主要是相邻的item进行数据交换的数据更新。
onSelectedChanged和clearView主要是长按操作对象可以进行一些操作,比如放大缩小操作

主要是这句话,实现移动mAdapter.notifyItemMoved(fromPosition, toPosition);//位置变化
而且数据源也有位置交换//数据源位置更换
if(fromPosition < toPosition)
{
    for(int i = fromPosition - 1; i < toPosition - 1; i++)//-1是因为加有头布局
    {
        Collections.swap(list, i, i + 1);
    }
}
else
{
    for(int i = fromPosition - 1;i > toPosition - 1; i--)
    {
        Collections.swap(list, i, i - 1);
    }
}
  @Override
    public boolean isLongPressDragEnabled() {
        //是否可拖拽
        layoutManager.setScrollEnabled(false);//禁止滑动
        tv_remove.setVisibility(View.VISIBLE);
        isLongPress = true;
        return true;
    }
});
这里设置禁止滑动

原文链接:http://www.apkbus.com/blog-880881-68492.html

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消