代码全在Workspace.java文件里修改
1、拦截把app图标拖到小部件上时会调用的方法。
public void onDragOver(DragObject d) {
......
mTargetCell = findNearestArea((int) mDragViewVisualCenter[0],
(int) mDragViewVisualCenter[1], minSpanX, minSpanY,
mDragTargetLayout, mTargetCell);
int screenId = getIdForScreen(mDragTargetLayout);
//因为我的小部件要固定在第0屏第0行,所以凡是图标拖到这里都直接return,条件可自行更改。
if(screenId == 0 && mTargetCell[1] == 0){
return;
}
}
这个方法是在拖拽app时每拖到另一个位置都会调用的方法,所以会调用很多次的。
2、当拖动到小部件位置时,拦截重新排序。
class ReorderAlarmListener implements OnAlarmListener {
......
public void onAlarm(Alarm alarm) {
int[] resultSpan = new int[2];
mTargetCell = findNearestArea((int) mDragViewVisualCenter[0],
(int) mDragViewVisualCenter[1], minSpanX, minSpanY, mDragTargetLayout,
mTargetCell);
int screen &