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;
         }

猜你喜欢

转载自blog.csdn.net/qq_24800377/article/details/78970417
今日推荐