Android可触屏操作的控件DragTableView

先上效果图

Android可触屏操作的控件DragTableView_第1张图片
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);
}

下面是一些方法

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);//非触屏交换item

public void reset(boolean animation);//重置,true有动画效果,像上面的效果那样

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

你可能感兴趣的:(Android可触屏操作的控件DragTableView)