EasyTagDragView

by wenhuaijun

wenhuaijun / EasyTagDragView

仿网易新闻app下拉标签选择菜单,长按拖动排序,点击增删标签控件

421 Stars 97 Forks Last release: Not found 26 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

2020届阿里巴巴实习生内推,招聘客户端、Java、前端、测试、算法等岗位。

需要内推的投简历到[email protected](备注 姓名+手机号+岗位)

EasyTagDragView

仿网易新闻app下拉标签选择菜单,长按拖动排序,点击增删标签控件

示例

introduce.gif

EasyTagDragView的使用

在layout布局里添加:


在java代码中: 给EasyTagDragView添加标签数据,包括已添加的标签数据和可添加的标签数据。 添加的数据bean需继承SimpleTitleTip类,可自由增加成员属性。如没特殊需求,可直接使用提供的SimpleTitleTip类。 注意每个tip的id必须唯一,不然拖拽会有bug

//设置已添加的的标签数据
easyTipDragView.setDragData(TipDataModel.getDragTips());

//设置可以添加的标签数据
easyTipDragView.setAddData(TipDataModel.getAddTips());

//显示EasyTagDragView
easyTipDragView.open();

//在easyTipDragView处于非编辑模式下点击item的回调(编辑模式下点击item作用为删除item)
easyTipDragView.setSelectedListener(new TipItemView.OnSelectedListener() {
    @Override
    public void onTileSelected(Tip entity, int position, View view) {
        toast(((SimpleTitleTip) entity).getTip());
    }
});

//设置每次数据改变后的回调(例如每次拖拽排序了标签或者增删了标签都会回调)
easyTipDragView.setDataResultCallback(new EasyTipDragView.OnDataChangeResultCallback() {
    @Override
    public void onDataChangeResult(ArrayList<tip> tips) {
        Log.i("heheda", tips.toString());
    }
});

//设置点击“确定”按钮后最终数据的回调
easyTipDragView.setOnCompleteCallback(new EasyTipDragView.OnCompleteCallback() {
    @Override
    public void onComplete(ArrayList<tip> tips) {
        toast("最终数据:" + tips.toString());
    }
});

注:当已经显示EasyTagDragView的时候,需监听返回键, 在编辑模式下点击返回键取消编辑模式。非编辑模式下则关闭EasyTagDragView

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    switch (keyCode){
        //点击返回键
        case KeyEvent.KEYCODE_BACK:
            //判断easyTipDragView是否已经显示出来
            if(easyTipDragView.isOpen()){
                if(!easyTipDragView.onKeyBackDown()){
                    btn.setVisibility(View.VISIBLE);//自己的业务逻辑
                }
                return true;
            }
            //....自己的业务逻辑

            break;
    }
    return super.onKeyDown(keyCode, event);
}

后期增加更多自定义属性和一些API,将View放入popupWindow,增加过渡动画

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.