Android Laucher3 去掉二级菜单

首先把AllAppsButton去掉,
    在HotSet.java中的把mContent.addViewToCellLayout(allAppsButton, -1, allAppsButton.getId(), lp, true);注释
    改变mAllAppsButtonRank的值为-1,这个值是表示那个位置放置AllAppsButton
    还需要在/res/xml/dw_tablet_hotseat.xml中把AllAppsButton位置设置一个Iteam
接下来就是要把所有APP放到桌面,Launcher加载桌面数据是通过查询数据库Favorites和workspaceScreen来获得的,所以我们需要在
第一次启动Launcher时把所有App的信息写到数据库中去
    public void addItemToFavorites(Context context){
+          final List profiles = mUserManager.getUserProfiles();
+
+            for (UserHandleCompat user : profiles) {
+                final List apps = mLauncherApps.getActivityList(null, user);
+                // Fail if we don't have any apps
+                // TODO: Fix this. Only fail for the current user.
+                if (apps == null || apps.isEmpty()) {
+                    return;
+                }
+               Log.d(TAG,"addItem");   
+               int screenId = 1;
+               int cellX = 0;
+               int cellY = 0;
+               final ContentValues values = new ContentValues();
+               values.put(LauncherSettings.WorkspaceScreens._ID, screenId);
+                values.put(LauncherSettings.WorkspaceScreens.SCREEN_RANK, screenId-1);
+               values.put(LauncherSettings.ChangeLogColumns.MODIFIED, System.currentTimeMillis());
+               final ContentResolver cr = context.getContentResolver();
+               cr.insert(LauncherSettings.WorkspaceScreens.CONTENT_URI,values);
+                // Create the ApplicationInfos
+                for (int i = 0; i < apps.size(); i++) {
+                    LauncherActivityInfoCompat app = apps.get(i);
+                   if (cellX == 6){
+                       cellY ++;
+                       cellX = 0;
+                   }
+                   if (cellY == 4){
+                       screenId ++;
+                       values.clear();
+                       values.put(LauncherSettings.WorkspaceScreens._ID, screenId);
+                        values.put(LauncherSettings.WorkspaceScreens.SCREEN_RANK, screenId-1);
+                       values.put(LauncherSettings.ChangeLogColumns.MODIFIED, System.currentTimeMillis());
+                       cr.insert(LauncherSettings.WorkspaceScreens.CONTENT_URI,values);
+                       cellY = 0;
+                   }
+                   addItemToDatabase(context, new ShortcutInfo(new AppInfo(context, app, user, mIconCache)),LauncherSetting
+                   cellX ++;
+             }
+       }
+    }


b/packages/apps/Launcher3/src/com/android/launcher3/ShortcutInfo.java

需要在这给它设置一个+       mIcon = info.iconBitmap;

这样就可以把所有应用放到桌面了

你可能感兴趣的:(android,launcher)