Android可触屏操作的控件DragTableView
先上效果图
文章图片
drag_table.gif
下面是github地址,jcenter因为升级了AS打包好像出了点问题,又掉坑里了T.Thttps://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搞定,坑爹的玩意儿(无爱脸)
推荐阅读
- android第三方框架(五)ButterKnife
- 陇上秋二|陇上秋二 罗敷媚
- Android中的AES加密-下
- 带有Hilt的Android上的依赖注入
- android|android studio中ndk的使用
- Android事件传递源码分析
- RxJava|RxJava 在Android项目中的使用(一)
- Android7.0|Android7.0 第三方应用无法访问私有库
- 深入理解|深入理解 Android 9.0 Crash 机制(二)
- 屏幕另一边的纠结