【文件属性】:
文件名称:DragNDropList-带拖动排序功能的ListView.zip
文件大小:859KB
文件格式:ZIP
更新时间:2022-10-13 21:53:59
开源项目
带拖动排序功能的ListView。比起DragSortListView来这个要简陋很多,不过可以从这个项目上学到drag功能的最基本实现方法。适合学习。项目地址:https://github.com/terlici/DragNDropList 效果图:使用说明:xml<?xml version="1.0" encoding="utf-8"?>
item 布局DragNDropListView的每个item都有一个处理拖动的drag handler。下面是一个普通的item布局,他包含了一个星星图像的ImageView以及一个textView,用户触摸星星的时候就可以开始拖动排序。<?xml version="1.0" encoding="utf-8"?>
adapter的设置普通的ListView是如下设置adapter的:ListView list = (ListView)findViewById(android.R.id.list);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(context,
R.layout.row,
cursor,
new String[]{"text"},
new int[]{R.id.text},
0);
list.setAdapter(adapter);而在DragNDropListView中SimpleCursorAdapter需要替换成DragNDropCursorAdapter同时将draghandler的id作为DragNDropCursorAdapter的最后一个参数。在上面的布局中这参数的值就是R.id.handler。最后setAdapter替换成setDragNDropAdapter。DragNDropListView list = (DragNDropListView)findViewById(android.R.id.list);
DragNDropCursorAdapter adapter = new DragNDropCursorAdapter(context,
R.layout.row,
cursor,
new String[]{"text"},
new int[]{R.id.text},
R.id.handler);
list.setDragNDropAdapter(adapter);事件DragNDropListView为拖动提供了监听者list.setOnItemDragNDropListener(...)该监听有如下接口public interface OnItemDragNDropListener {
// Called when the item begins dragging.
public void onItemDrag(DragNDropListView parent, View view, int position, long id);
// Called after the item is dropped in place
public void onItemDrop(DragNDropListView parent, View view, int startPosition, int endPosition, long id);
}demohttps://github.com/terlici/DragNDropListApp
【文件预览】:
DragNDropList-master
----res()
--------values()
--------layout()
----proguard-project.txt(781B)
----LICENSE(11KB)
----.settings()
--------org.eclipse.jdt.core.prefs(173B)
----src()
--------com()
----.project(816B)
----.classpath(466B)
----.gitignore(12B)
----project.properties(584B)
----README.md(5KB)
----AndroidManifest.xml(310B)
----build.gradle(660B)
----libs()
--------android-support-v4.jar(972KB)