Android可触屏操作的控件DragTableView

先上效果图
Android可触屏操作的控件DragTableView
文章图片
drag_table.gif
下面是github地址,jcenter因为升级了AS打包好像出了点问题,又掉坑里了T.T
https://github.com/Linyuzai/Demo4TableView
可以用手拖动item进行位置的交换,在RecyclerView的基础上改进的,然后简单介绍一下,因为是RecyclerView肯定要Adapter
int getRowCount(); //行数int getColCount(); //列数int getTableItemViewType(int row, int col); //item的类型VH onCreateTableViewHolder(ViewGroup parent, int viewType); void onBindTableViewHolder(VH holder, int row, int col); boolean isDraggable(int row, int col); //所在行列能不能拖动

然后是两个监听器
public interface OnTableItemClickListener { void onTableItemClick(View view, int row, int col); }public interface OnTableItemDragListener { //手指按下某个item就会触发 void onFromItemSelected(View view, int row, int col); //移动时返回当前松手将会交换的item void onItemDragged(View toView, int toViewRow, int toViewCol); //手指松开时,被交换的item void onToItemSelected(View view, int row, int col); }

【Android可触屏操作的控件DragTableView】下面是一些方法
public boolean isDraggable(); //能否拖动public void setDraggable(boolean draggable); //设置能否拖动public TableAdapter getAdapter(); public void setAdapter(TableAdapter adapter); public OnTableItemDragListener getOnTableItemDragListener(); public void setOnTableItemDragListener(OnTableItemDragListener dragListener); public OnTableItemClickListener getOnTableItemClickListener(); public void setOnTableItemClickListener(OnTableItemClickListener clickListener); public TableView getTableView(); //得到里面的RecyclerView,有什么需求可以自己实现public void setItemAnimator(RecyclerView.ItemAnimator itemAnimator); public void addItemDecoration(RecyclerView.ItemDecoration itemDecoration); //public void addItemDecoration(RecyclerView.ItemDecoration itemDecoration, int index); //public void moveItem(int fromRow, int fromCol, int toRow, int toCol); //非触屏交换itempublic void reset(boolean animation); //重置,true有动画效果,像上面的效果那样

其实之前有试过用ViewDragHelper,但是。。。一堆的bug,于是放弃了,也许是我没写好,回头再去恶补一下。
我还是先把jcenter搞定,坑爹的玩意儿(无爱脸)

    推荐阅读