Android Launcher3 禁止用户拖动图标创建文件夹,控制拖动图标到另一个图标时的动画效果

 

禁止用户拖拽应用图标创建文件夹,需要在Workspace中的onDrop()方法的createUserFolderIfNecessary方法注释掉。这样就不再创建文件夹。

 // If the item being dropped is a shortcut and the nearest drop
 // cell also contains a shortcut, then create a folder with the two shortcuts.
 /**
  * 注释这里,不会再添加创建文件夹
  */
// if (!mInScrollArea && createUserFolderIfNecessary(cell, container,
//     dropTargetLayout, mTargetCell, distance, false, d.dragView, null)) {
//     return;
// }

控制拖动图标到另一个图标时的动画效果,则是在Workspace中的manageFolderFeedback()去设置

private void manageFolderFeedback(ItemInfo info, CellLayout targetLayout,
int[] targetCell, float distance, View dragOverView) {
boolean userFolderPending = willCreateUserFolder(info, targetLayout, targetCell, distance,false);

if (mDragMode == DRAG_MODE_NONE && userFolderPending &&
!mFolderCreationAlarm.alarmPending()) {
/**
* 把图标拖动到另一个图标上,没有跳动动画,也没有白色圆形动画
*
* 其实就是把targetCell[0],targetCell[1]两个参数写得很大,
*
* 根本没有这个图标显示该动画,需要的话就可以把位置修改会和源码一样
*/
// mFolderCreationAlarm.setOnAlarmListener(new
// FolderCreationAlarmListener(targetLayout, 18, 18));
// mFolderCreationAlarm.setAlarm(FOLDER_CREATION_TIMEOUT);


/**
* 如果需要把图标拖动到另一个图标上也有和其他一样的跳动动画
*
* 但是没有底部白色圆形动画,注释下面源代码就可实现
*
* 下面代码是没有修改过的
*/
// mFolderCreationAlarm.setOnAlarmListener(new
// FolderCreationAlarmListener(targetLayout, targetCell[0], targetCell[1]));
// mFolderCreationAlarm.setAlarm(FOLDER_CREATION_TIMEOUT);
return;
}

 

 

你可能感兴趣的:(Android,源码)