Android15 launcher3

修改布局查看device_profiles.xml ,根据不同的网格数加载

packages/apps/Launcher3/res/xml/device_profiles.xml



注意device下查看是否有相同的文件

如果需要显示 6*5 的布局需要将这个grid-option 对齐其他地方的文件,不然会不起作用。


上面的属性如 numRows numColumns 在attrs.xml定义  
packages/apps/Launcher3/res/values/attrs.xml
查看 



需要添加6列的Hotseat 不起作用,查看log发现LoaderCursor 有输出error
packages/apps/Launcher3/src/com/android/launcher3/model/LoaderCursor.java
if (item.screenId >= mIDP.numDatabaseHotseatIcons) {

    Log.e(TAG, "Error loading shortcut " + item
            + " into hotseat position screenId=" + item.screenId
            + ", position out of bounds: (0 to " + (mIDP.numDatabaseHotseatIcons - 1)
            + ")");
    return false;
}

//mIDP.numDatabaseHotseatIcons  这个位置一直输出 4,最后只加载4个图标,反追查搜索numDatabaseHotseatIcons 找到位置  InvariantDeviceProfile.java 



追查实例化过程可以查看 numDatabaseHotseatIcons 
packages/apps/Launcher3/src/com/android/launcher3/InvariantDeviceProfile.java
查看实例化方法 initGrid 和 GridOption

AllApp界面拦截apk

packages/apps/Launcher3/src/com/android/launcher3/model/LoaderTask.java

private List loadAllApps() {

......

for (int i = 0; i < apps.size(); i++) {
    LauncherActivityInfo app = apps.get(i);
    //add
    if("com.xxx.packges".equals(apps.get(i).getApplicationInfo().packageName)) {
        continue;
    }

   //add end

......

AppInfo appInfo = new AppInfo(app, mUserCache.getUserInfo(user),
        ApiWrapper.INSTANCE.get(mApp.getContext()), mPmHelper, quietMode);
if (Flags.enableSupportForArchiving() && app.getApplicationInfo().isArchived) {

你可能感兴趣的:(android,Android15,Launcher3,Hotseat)