在做一個應用時,有一個需求,需要實現像iphone天氣的城市列表界面的可拖動功能。其實android已經實現瞭這個控件。但是這個控件不是公共控件,而是自帶音樂播放器下的一個自定義控件。具體目錄在:packages/apps/Music/src/com/android/music/TouchInterceptor.java。
使用發方法很簡單,因為TouchInterceptor.java是繼承ListView,與Listview不同之處在於,需要註冊對該Listview的監聽
代碼如下:
[java]
public void setTrashcan(Drawable trash) {
mTrashcan = trash;
mRemoveMode = TRASH;
}
public void setDragListener(DragListener l) {
mDragListener = l;
}
public void setDropListener(DropListener l) {
mDropListener = l;
}
public void setRemoveListener(RemoveListener l) {
mRemoveListener = l;
}
public interface DragListener {
void drag(int from, int to);
}
public interface DropListener {// 拖動listview的item,如將position=1的拖動到position=5,在這裡做必要數據更新
void drop(int from, int to);
}
public interface RemoveListener {
void remove(int which);
}
作者:fangchongbory