Android Launcher3 禁止使用者拖動圖示建立資料夾,控制拖動圖示到另一個圖示時的動畫效果
阿新 • • 發佈:2019-01-30
禁止使用者拖拽應用圖示建立資料夾,需要在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) { booleanuserFolderPending = 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; }