负一屏的实现主流有两种方式

Launcher自行开发,往Workspace中插入一个自定义的CellLayout来作为负一屏的容器。 这种方式是最常用的方案。
利用Google的feed屏方案,基于ILauncherOverlay和ILauncherOverlayCallback这两个接口来实现,Launcher作为客户端,负一屏是一个独立应用作为服务端,通过aidl来通信来实现加载负一屏以及支持相互滑页。
这一章节我们主要介绍下方案一,通过往workspace中添加celllayout来实现负一屏

先介绍下桌面的显示结构,Workspace继承自Pageview,用来展示桌面的页面,workspace中可以放入很多CellLayout,而每个CellLayout对应桌面的每一页,CellLayout的一个子View是ShortcutAndWidgetContainer,ShortcutAndWidgetContainer定义实现了应用图标的显示排列。

在了解了Workspace的基本结构后,可以看出,想要新增个负一屏,只需要在workspace中add一个新的CellLayout。 可以看一下代码是如何实现的,主要分三步:

第一步:在Launcher.java中的bindScreens中,除了原来的根据screenIds的集合来bindAddScreens之外,我们新增个业务,用hasCustomContentToLeft()来判断是否需要负一屏,如果需要,我们调用workspace中的createCustomContentContainer()来创建负一屏,populateCustomContentContainer()可以用来将自定义的负一屏view加入到新的CellLayout中,具体代码如下:

Workspace的基本结构新增个负一屏相关推荐

  1. Launcher桌面负一屏实现 第一章

    Android Launcher负一屏实现 负一屏的实现主流有两种方式 Launcher自行开发,往Workspace中插入一个自定义的CellLayout来作为负一屏的容器. 这种方式是最常用的方案 ...

  2. Launcher负一屏(二)----引入其它资源替换Google原生负一屏界面

    负一屏有两种实现方式 1.Launcher自行开发,往Workspace中插入一个自定义的CellLayout来作为负一屏的容器. 具体请参考之前的文章:https://blog.csdn.net/a ...

  3. Launcher负一屏---创建和添加流程

    负一屏整体框架 目录 负一屏整体框架 负一屏创建时机 1.workspace页面顺序 2.负一屏的加入和view的填充 负一屏创建时机 负一屏的创建在Launcher.java的bindScreens ...

  4. Android桌面负一屏实现.md

    Android桌面负一屏实现 负一屏的实现主流有两种方式 Launcher自行开发,往Workspace中插入一个自定义的CellLayout来作为负一屏的容器. 这种方式是最常用的方案. 利用Goo ...

  5. 负一屏卡片快服务测试点击账号绑定无响应

    [问题描述] 1.接入方案:负一屏卡片类快服务(Card ability) 2.分发的流量入口:智慧助手·今天 3.测试工具: 1)华为应用市场下载:华为快服务助手 2)华为手机,登陆开发者账号,真机 ...

  6. Launcher3桌面开发(5)-Launcher3 负一屏的定制开发

    Launcher3源码地址:Launcher3-master [This tutorial was written by Ticoo] 左一屏 可能有的小伙伴不清楚什么是左一屏,或者是负一屏.以我的了 ...

  7. 负一屏服务端实现,精简demo源码供查阅

    前期两篇文章介绍了下在launcher上集成负一屏的方案,这个方案脱离了launcher本身的Workspace层,而采用了新方案.针对新方案有很多网友提出了很多问题. 1.google feed就是 ...

  8. html负一屏效果,负一屏谁最实用 三大旗舰负一屏功能对比

    [CN314智能生活]众所周知,当我们使用大多数的安卓手机时,只要在主界面向左滑动,那么一般的情况下就会出现一个全新的界面,这个界面就是负一屏.简单来说,就是大部分的手机会默认把第一页设置成Home页 ...

  9. 新华三发布H3C Workspace数字工作空间:只需一张屏,程序员也能随时随地在云上写代码

    随着数字时代的不断发展,工作模式经历了面对面的"纸+笔"模式.办公室场景下的"PC+电脑"模式.以及远程办公场景下的"手机+协同软件"模式, ...

最新文章

  1. 使用卷积神经网络预防疲劳驾驶事故
  2. 根据excel中的容填写信息
  3. WEB文件管理器2.0版
  4. 开源播放器 ijkplayer (四) :Ijkplayer切换网络时停止播放的问题处理
  5. 解决Vs输出中文乱码的问题
  6. 【NOIP 模拟赛】钟 模拟+链表
  7. 知识图谱数据构建的“硬骨头”,阿里工程师如何拿下?
  8. 各种语言里获取当前模块的方法:ABAP,ABSL,C,nodejs
  9. 论文浅尝 | 一种嵌入效率极高的 node embedding 方式
  10. 三大院士、十大数据库掌门人,岳麓对话开启数字经济新时代!
  11. php1.9,PHP1.9--数组
  12. 八爪鱼导出到mysql数据库_数据导出到Oracle数据库的方法 - 八爪鱼采集器
  13. 计算机网络分开哪些阶段,物联网的发展可以分为哪四个阶段?
  14. 读书笔记之《史记》读后感心得体会
  15. SAP补提折旧-折旧的增加/减少
  16. 三网融合方案通过 一台机器打电话看电视上网
  17. SQL on log : 同比分析各种指标
  18. jquery获取tr下第某个td的值
  19. c语言在函数内部宏定义,简单讲解C++的内部和外部函数以及宏的定义
  20. rabbitmq 与 erlang 安装与测试

热门文章

  1. java xms xmx xmn_JAVA 虚拟机JVM参数调优(1)-Xms -Xmx -Xmn
  2. gitlab使用说明
  3. UDP和TCP的区别
  4. mysql事务隔离级别
  5. openai dota2 细节
  6. 面试被问到 ConcurrentHashMap答不出 ,看这一篇就够了!
  7. 送给北京地区想跳槽的底层人民
  8. 将产品在移动应用市场中推向成功的十点建议
  9. 计算机输入法知识讲解,26、认识输入法--电脑基础知识
  10. Eclipse安装插件长时间停留在calculating requirements and dependencies