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);
}

下面是一些方法

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 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,455评论 25 708
  • afinalAfinal是一个android的ioc,orm框架 https://github.com/yangf...
    passiontim阅读 15,568评论 2 45
  • MisterJing阅读 207评论 0 0
  • 黑夜很黑 它就像我头上的头发 不洗的话还会生出来油垢 但 无论怎么洗 它都不会变白 是啊,洗不白的 就像黑夜要变成...
    LAON阅读 117评论 0 0
  • 1 两个人在一起能做最多的事,就是陪伴。我干我的,你干你的,有两三个小时的晚间黄金时间,他们都是独享的。但你知道一...
    秋日的残雪阅读 390评论 2 3