android 11 SystemUI 状态栏打开之后的界面层级关系说明之一

在这里插入图片描述

比如WiFi 图标的父layout为:

Class Name: ButtonRelativeLayout
Class Name: QSTileView
Class Name: TilePage
Class Name: PagedTileLayout
Class Name: QSPanel
Class Name: NonInterceptingScrollView
Class Name: QSContainerImpl
Class Name: FrameLayout
Class Name: NotificationsQuickSettingsContainer
Class Name: NotificationPanelView
Class Name: NotificationShadeWindowView
定义在文件:

QSTileView 是如何创建的?

QSPanel.addTile 被调用的流程:

在这里插入图片描述
在 QSFragment 的 onViewCreated 方法被调用 。

系统何时创建QSTileHost

在 QSTileHost 的 getDefaultSpecs 方法中加载系统默认的 tiles.

点击方法是如何指定的?

每一个都是 QSTileImpl 的子类 ,有定义点击方法.

QSTileHost 来自与dagger的注入

调用 QSTileHost 的 getTiles方法

QSTileHost 的Tiles来自哪里?

何时创建一个WifiTile

1 QSFactoryImpl 的 createTile 方法中.

2 在 QSTileHost.java的 createTile 方法调用 QSFactoryImpl 的 createTile 方法

在这里插入图片描述

public void onTuningChanged(String key, String newValue)

newValue 的内容为: wifi,bt,dnd,flashlight,battery,cell,airplane,cast,screenrecord,dbg:mem

当前用户的 tiles 通过调用 Settings.Secure.putStringForUser 被保存在 sysui_qs_tiles 字段下 。

TunerServiceImpl 的方法 addTunable 的被调用方法堆栈:

加载tiles的顺序: 先去Settings.Secure 下查找 sysui_qs_tiles ,如果没有则使用系统默认的: quick_settings_tiles_default
代码是在QSTileHost 的 loadTileSpecs 方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573576.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件开发服务合同套用模板(WORD原件)

一、合作方式 二、合同标的 三、开发进度及软件成果交付 四、开发费用 五、付款结算方式 六、知识产权条款 七、双方的权利和义务 八、验收 九、售后服务支持 十、培训 十一、保密责任 十二、不可抗力 十三、争议的解决 十四、其它事项 软件全套资料包领取:软件开发…

手机termux免root安装kali:一步到位+图形界面_termux安装kali-

1.工具 安卓包括鸿蒙手机、WiFi、充足的电量、脑子 2.浏览器搜索termuxvnc viewer下载安装。 3.对抗华为纯净模式需要一些操作先断网弹窗提示先不开等到继续安装的时候连上网智能检测过后就可以了 termux正常版本可以通过智能监测失败了就说明安装包是盗版 4.以后出现类似…

区块链技术与大数据结合的商业模式探索

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 随着区块链技术和大数据技术的不断发展,两者的结合为企业带来了新的商业模式…

聊聊多模态大模型处理的思考

多模态:文本、音频、视频、图像等多形态的展现形式。目前部门内业务要求领域大模型需要是多模态——支持音频/文本。从个人思考的角度来审视下,审视下多模态大模型的实现方式。首先就要区分输入与输出,即输入的模态与输出的模态。从目前来看&…

HBase的Python API(happybase)操作

一、Windows下安装Python库:happybase pip install happybase -i https://pypi.tuna.tsinghua.edu.cn/simple 二、 开启HBase的Thrift服务 想要使用Python API连接HBase,需要开启HBase的Thrift服务。所以,在Linux服务器上,执行如…

2024最新版克魔助手抓包教程(9) - 克魔助手 IOS 数据抓包

引言 在移动应用程序的开发中,了解应用程序的网络通信是至关重要的。数据抓包是一种很好的方法,可以让我们分析应用程序的网络请求和响应,了解应用程序的网络操作情况。克魔助手是一款非常强大的抓包工具,可以帮助我们在 Android …

前端Webpack5高级进阶课程

课程介绍 本套视频教程主要内容包含React/Vue最新版本脚手架分析、基于Webpack5编写自己的loader和plugin等,让你开发时选择更多样,最后,用不到一百行的代码实现Webpack打包。通过本套视频教程的学习,可以帮你彻底打通Webpack的任…

分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测

分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测 目录 分类预测 | Matlab实现CNN-LSTM-Mutilhead-Attention卷积神经网络-长短期记忆网络融合多头注意力机制多特征分类预测分类效果基本介绍模型描述程序设计参…

Python 从0开始 一步步基于Django创建项目(13)将数据关联到用户

在city_infos应用程序中,每个城市信息条目是关联到城市的,所以只需要将城市条目关联到用户即可。 将数据关联到用户,就是把‘顶层’数据关联到用户。 设计思路: 1、修改顶层数据模型,向其中添加‘用户’属性 2、根…

开发面试相关的编程题

1,【求数字1出现的次数】 问题描述: 输入一个整数n,求从1到n这n个整数(十进制)中1出现的次数。要求空间复杂度为O(n)。 输入描述: 1 输入的数据包含一行: 整数N,要求N>1 输出描述: 1 输出一个整数,表示从1到N这N个…

Django安装及第一个项目

1、安装python C:\Users\leell>py --version Python 3.10.6 可以看出我的环境python的版本3.10.6,比较新 2、 Python 虚拟环境创建 2.1 官网教程 目前,有两种常用工具可用于创建 Python 虚拟环境: venv 在 Python 3.3 及更高版本中默…

Cisco Firepower FMCv修改管理Ip方法

FMCv 是部署在VMWARE虚拟平台上的FMC 部署完成后,如何修改管理IP 1 查看当前版本 show version 可以看到是for VMware 2 修改管理IP步骤 2.1 进入expert模式 expert2.2 进入超级用户 sudo su并输入密码 2.3 查看当前网卡Ip 2.4 修改Ip 命令: /…