Launcher3仿小米桌面

本文详细介绍了如何将5.1版本的Launcher3移植到6.0,并解决在改造过程中遇到的两大问题。首先,通过修改com.android.launcher3.LauncherAppState.java控制应用显示。接着,修复了在workspace上默认只有移除操作,以及长按桌面进入设置后无法返回主界面的异常。解决方案包括参考相关博客和替换特定方法来避免空指针异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚开始弄这个的时候 没有一点头绪 ,后来看到4.4 跟5.1的源码有这个方法 ,刚开始尝试是把4.4的Launcher移植到6.0版本,编译报错,版本差别太大了。之后拿到5.1的源码尝试编译 通过了,然后就开始分析
首先找到控制所有应用按钮显示的地方在com\android\launcher3\LauncherAppState.java

    public static boolean isDisableAllApps() {
        // Returns false on non-dogfood builds.
        /*注释下面的两句 直接返回true*/
        //return getInstance().mBuildInfo.isDogfoodBuild() &&
               // Utilities.isPropertyEnabled(Launcher.DISABLE_ALL_APPS_PROPERTY);
        return true;
    }

这样按钮就消失了了,所有的app都出现再 workspace
只修改此处 还有两个大坑,一、通过上面的步骤的话 我们默认是把所有应用显示在了workspace上,然而用系统launcher的人都知道在workspace上默认只有移除动作的如下
这里写图片描述
只有在主菜单长按应用才会出现卸载或应用信息按钮 在workspace已出只是把图标删除了,进入到设置–》应用里面还能找到apk
如果adb shell pm clear com.android.launcher3重启Launcher app又出现在桌面上
这个坑请参考此博客 android launcher 之踩到的坑
下面说 第二个坑 修改之后 长按桌面空白处 点击进入wight界面会出现异常 进去wight界面之后 返回 不到主界面了 点返回键 home键都没用 要长按一下桌面 再点一下桌面才会回来
找到在Launcher.java的两个方法showAppsCustomizeHelper和hideAppsCustomizeHelper中用到

/**
     * Sets the all apps button. This method is called from {@link Hotseat}.
     */
    public void setAllAppsButton(View allAppsButton) {
        mAllAppsButton = allAppsButton;
    }

    public View getAllAppsButton() {
        return mAllAppsButton;
    }
 // If for some reason our views aren't initialized, don't animate
       boolean initialized = getAllAppsButton() != null;

        if (animated && initialized*) {
        ...
        }

原因是去主菜单后 这个mAllAppsButton是空的,就出现异常了
我就用getHotseat()替换getAllAppsButton()方法 完美解决

 // If for some reason our views aren't initialized, don't animate
        boolean initialized = getHotseat() != null;

        if (animated &&initialized) {
            mStateAnimation = LauncherAnimUtils.createAnimatorSet();
            if (workspaceAnim != null) {
                mStateAnimation.play(workspaceAnim);
            }

两个方法showAppsCustomizeHelper和hideAppsCustomizeHelper中用到的都要替换
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值