ITPub博客

首页 > IT职业 > IT职场 > 拖拽RecyclerViewDemo

拖拽RecyclerViewDemo

IT职场 作者:regatta 时间:2021-09-09 09:52:56 0 删除 编辑

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

图片描述

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

LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);

linearLayoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);

这个是头部的水平方向;

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

图片描述


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 - 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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/2281/viewspace-2813992/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: jquery图片轮播
请登录后发表评论 登录
全部评论

注册时间:2019-04-16

  • 博文量
    0
  • 访问量
    578