当前位置: 首页 > news >正文

Android15 launcher3

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

packages/apps/Launcher3/res/xml/device_profiles.xml<grid-optionlauncher:name="6_by_5"launcher:numRows="5"launcher:numColumns="6"launcher:numSearchContainerColumns="3"launcher:numExtendedHotseatIcons="6"launcher:numFolderRows="3"launcher:numFolderColumns="3"launcher:numHotseatIcons="6"launcher:numAllAppsColumns="6"launcher:isScalable="true"launcher:inlineNavButtonsEndSpacing="@dimen/taskbar_button_margin_6_5"launcher:devicePaddingId="@xml/paddings_6x5"launcher:dbFile="launcher_6_by_5.db"launcher:defaultLayoutId="@xml/default_workspace_6x5"launcher:deviceCategory="tablet" >注意device下查看是否有相同的文件如果需要显示 6*5 的布局需要将这个grid-option 对齐其他地方的文件,不然会不起作用。上面的属性如 numRows numColumns 在attrs.xml定义  
packages/apps/Launcher3/res/values/attrs.xml
查看 <declare-styleable name="GridDisplayOption">需要添加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<LauncherActivityInfo> 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) {

http://www.lqws.cn/news/154837.html

相关文章:

  • SQL进阶之旅 Day 16:特定数据库引擎高级特性
  • PostgreSQL 入门教程
  • AI应用工程师面试
  • OpenCV 图像像素的逻辑操作
  • 【CPU】英特尔酷睿Ultra 5 225H与Ultra7 258V(Lunar Lake架构)PK
  • Sublime Text4 4192 安装
  • 解决el-select选择框右侧下拉箭头遮挡文字问题
  • DASCTF
  • buuctf——web刷题第二页
  • MCP协议在LLM系统中的架构与实现原理研究
  • `sendto()` / `recvfrom()` - 发送/接收数据(UDP)
  • PX4 | 无人机关闭磁力计罗盘飞行(yaw estimate error报错解决方法)
  • react私有样式处理
  • React---day9
  • Educational Codeforces Round 179 (Rated for Div. 2)
  • centos查看开启关闭防火墙状态
  • Java高级 | 【实验五】Spring boot+mybatis操作数据库
  • 获取KIMI API以及API key
  • Jenkins实现自动化部署Springboot项目到Docker容器(Jenkinsfile)
  • IDM 免费安装使用方法,支持6.42版本,实时更新
  • 查看本机显卡信息
  • 华为云Flexus+DeepSeek征文 | 基于DeepSeek-V3构建企业知识库问答机器人实战
  • 不等式中的放缩法
  • Java中List的forEach用法详解
  • 总结vxe-grid的一些用法
  • Jenkins | Linux环境部署Jenkins与部署java项目
  • vscode 离线安装第三方库跳转库
  • 更新Java的环境变量后VScode/cursor里面还是之前的环境变量
  • Github Copilot新特性:Copilot Spaces-成为某个主题的专家
  • 【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER