开发者社区> 问答> 正文

大家对拖动排序有没有好的实现方法

大家对拖动排序有没有好的实现方法?

image.png

本问题来自阿里云开发者社区的【11大垂直技术领域开发者社群】。 点击链接欢迎加入感兴趣的技术领域群。

展开
收起
游客pklijor6gytpx 2019-10-24 16:25:22 1743 0
1 条回答
写回答
取消 提交回答
  • 1.拖拽可以移动item,并且其他item会立即自动补位,快速拖拽也非常流畅 2.item太多时,拖拽到边缘时会自动滚屏. 3.可以自定义被拖拽的的View放大,添加阴影等效果 4.长按启动删除模式,需要自己实现item的删除按钮展示,自己管理删除模式的切换 5.可以放在ScrollView中拖动排序,需要ScrollView继承ListenScrollView,不影响外面控件的大部分事件. 6.可以长按启动item拖拽,也可以触摸直接开始拖动

    简单使用方法

        dragSortGridView = (DragSortGridView) findViewById(R.id.dragSort1);
        //长按item响应该item的拖动排序,默认是触摸就开始拖动
        dragSortGridView.setDragModel(DragSortGridView.DRAG_BY_LONG_CLICK);
        dragAdapter = new MyAdapter();
        dragSortGridView.setAdapter(dragAdapter);
    

    dragAdapter 需要多实现onDataModelMove一个方法,界面排序改变需要提供真实数据排序改变.示例

    class MyAdapter extends DragAdapter { @Override public void onDataModelMove(int from, int to) { String s = list.remove(from); list.add(to, s); }

        @Override
        public int getCount() {
            return list.size();
        }
    
        @Override
        public String getItem(int position) {
            return list.get(position);
        }
    
        @Override
        public long getItemId(int position) {
            return 0;
        }
    
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            TextView textView;
            if (convertView == null) {
                FrameLayout frameLayout = new FrameLayout(SecondActivity.this);
                convertView = frameLayout;
                textView = new TextView(SecondActivity.this);
                frameLayout.setPadding(20, 20, 20, 20);
                textView.setPadding(20, 100, 20, 100);
                frameLayout.addView(textView);
                textView.setBackgroundColor(0x33ff00ff);
                textView.setGravity(Gravity.CENTER);
            } else {
                textView = (TextView) ((FrameLayout) convertView).getChildAt(0);
            }
            textView.setText(getItem(position));
            return convertView;
        }
    }
    
    2019-11-06 16:45:22
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载