Launcher3仿小米桌面
来源:互联网 发布:力港网络 知乎 编辑:程序博客网 时间:2024/04/29 23:30
刚开始弄这个的时候 没有一点头绪 ,后来看到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中用到的都要替换
- Launcher3仿小米桌面
- 小米桌面就是 Launcher3去掉主菜单
- 小米桌面就是 Launcher3去掉主菜单
- [FAQ11625] Launcher3如何去掉主菜单,所有应用摆在桌面,类似小米桌面
- [FAQ11625] Launcher3如何去掉主菜单,所有应用摆在桌面,类似小米桌面
- Android launcher3 循环桌面
- launcher3 修改默认桌面布局
- android launcher3桌面快捷方式分析
- android 接管launcher3桌面快捷方式
- 如何退出小米桌面
- launcher3桌面阴影和systemUI阴影
- 去掉默认桌面:Launcher3 和 Home
- Android Launcher3 修改双层桌面为单层
- 一步步客制化Android桌面(Launcher3)图标
- android Launcher3 设置默认桌面应用
- 仿小米简约Calculator
- 仿小米联系人
- 仿小米商品展示
- 变量类型命名
- 六位回文
- 2.《MySQL必知必会》检索与过滤
- CentOS下安装JDK的三种方法
- angular2学习笔记(10)
- Launcher3仿小米桌面
- iOS获取摄像头是否允许
- 欢迎使用CSDN-markdown编辑器
- 随记(3)
- JAVA线程同步
- monkey搭建
- string字符串常用方法
- opengl 001 显示一个带背景颜色的窗口
- hadoop 2.7.1安装和配置