Setting学习(一)-静态界面

设置是整个android系统的重要应用,涉及的都是系统功能
Setting模块的主要路径 :/packages/apps/Settings/
Setting模块里的activity可能一看和其他的activity有不同,但是其实原理都是一样的,设置为了更好的区分和获取信息,在Androidmanifest.xml中添加了许多属性
从Androidmanifest.xml可以看到:


Settings有一个子类SubSettings.java
设置模块的主界面的Activity为 Settings

/packages/apps/Settings/src/com/android/settings/Settings.java

可以看到Settings的父类是SettingsActivity 内部也有许多继承SettingsActivity 的静态类内部类
\packages\apps\settings\src\com\android\settings\SubSettings.java

里面有两个方法,一个是向上导航另一个是判断是否为有效fragment
1.Settings和SubSettings都是空acticity,没有7大生命周期
2.他们都继承自SettingsActivity ,就都要去调用SettingsActivity 的onCreate()方法
3.Settings主界面Activity使用的是Settings
4.Settings子界面Activity基本上都是使用SubSettings
SettingsActivity继承自SettingsDrawerActivity,而SettingsDrawerActivity是
在frameworks\base\packages\settingslib\src\com\android\settingslib\drawer中定义
,SettingsDrawerActivity名称是沿用N版本的名字,但是侧滑栏功能在O版本上已经移除了
来看SettingsActivity的onCreate方法:

通过类名来判断加载布局,判断当前是Settings还是SubSettings来确定用什么布局来显示

如果是主界面的话加载settings_main_dashboard.xml

主要有两个fragment一个显示顶部的搜索栏,一个下面显示主要内容(一级菜单)
在之后的界面跳转即 launchSettingFragment(initialFragmentName, isSubSettings, intent)函数中又做出了区分:

第一次进入到主界面时mIsShowingDashboard是等于true的,所以会进入else
主界面使用DashboardSummary(Fragment)进行填充:
如果是子界面的话:
子界面则使用各自的Fragment,并设置各自的主题。

Settings的内部类的启动一般都是通过activity 中的action属性启动的,而判断的依据也是通过mIsShowingDashboard,加载得是settings_main_prefs.xml文件。
Settings的内部类的主体显示内容依然是一个Fragment,而这个Fragment已经在AndroidManifest.xml中定义好了.
StorageDashboardActivity为例

里面有很多属性,这些属性是在SettingLib中的
/frameworks/base/packages/SettingsLib/src/com/android/settingslib/drawer/TileUtils.java有用到的
内部类StorageDashboardActivity的Fragment显示内容为:
com.android.settings.FRAGMENT_CLASS,即com.android.settings.deviceinfo.StorageSettings

参考:https://blog.csdn.net/qq_34149526/article/details/83186719

Setting学习(一)-静态界面相关推荐

  1. 如何使用深度学习识别 UI 界面组件?

    导读:智能生成代码平台 imgcook 以 Sketch.PSD.静态图片等形式的视觉稿作为输入,可以一键生成可维护的前端代码,但从设计稿中获取的都是 div.img.span 等元件,而前端大多是组 ...

  2. Centos 7 学习之静态IP设置

    本学习主要针对 Centos 7.0.1406 版本进行学习整理! 如果你使用 VirtualBox 配置 Centos 那么请参考我的这篇文章 Centos 7 学习之静态IP设置(续) 1.编辑 ...

  3. linux7.2 静态IP设置,Centos 7 学习之静态IP设置

    本学习主要针对 Centos 7.0.1406 版本进行学习整理! 如果你使用 VirtualBox 配置 Centos 那么请参考我的这篇文章 Centos 7 学习之静态IP设置(续) 1.编辑 ...

  4. 中间件静态文件服务器,从koa-static中间件学习搭建静态文件服务器

    从koa和第,.年过事工宗据指数遍互业经搞断果会-static中间件学习搭建静态抖要支圈者器说是事天开的.年后编定功口小发还应久剑文件服务器 koa-作一新求抖直微圈send Static file ...

  5. js中将html文档写入静态界面当中

    1.静态界面当中: <div id="test"></div> 2.在js当中写入 $("#test").append(html文档内容 ...

  6. 物联网学习thingworx入门——界面mushup使用与绑定数据

    文章目录 前言 官网下载安装+文档参考 入门 菜单 文档教程参考 thinkworx基础学习计划 前台界面 使用数据 将小工具绑定到属性 案例 1.新建mushup 3.添加文本框 4.添加复选框 添 ...

  7. Android学习之登陆界面设计(一)前后期准备以及相关配置

    Android学习之登陆界面设计(一)前后期准备以及相关配置 前言 成品 成品样式 成品特点 工具 系统配置 手机配置 Android Studio 3.6.3 SDK 图片来源 矢量图标库 Back ...

  8. Android学习之登陆界面设计(二)基本界面设计

    Android学习之登陆界面设计(二)基本界面设计 前提 绘图样式 - drawable bg_login_btn_submit.xml bg_login_panel_slide.xml bg_log ...

  9. 吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)

    摘要:吸烟行为检测软件用于日常场景下吸烟行为监测,快速准确识别和定位吸烟位置.记录并显示检测结果,辅助公共场所吸烟安全报警等.本文详细介绍吸烟行为检测系统,在介绍算法原理的同时,给出Python的实现 ...

最新文章

  1. “六神”——技术提高开发效率的一个方案
  2. mac catalina删除系统多余文件 内存不足_macOS Catalina Patcher(如何在旧mac上安装Catalina系统)...
  3. Educational Codeforces Round 94 (Rated for Div. 2) D(思维)
  4. Asterisk 可加载模块
  5. oracle 库not null,oracle平添not null约束
  6. 分享几个简单易做的Java小程序,一起动手来试试吧
  7. Mac环境下反编译Apk(入门)
  8. asdm 对应 java 版本,asdm不能登录问题;浏览器必须是ie,不能是chrome或者firefox;java的版本,尤其是安全等级和例外需要调整...
  9. powerbi使用说明_个人如何免费注册 PowerBI 账号(终极说明)
  10. 关于网页加载慢的一个解决方法——取消勾选【局域网设置】中的【自动检测设置】
  11. 【电脑操作】【鼠标】无线鼠标无反应怎么办?
  12. 计算机仿真撤稿,LOL云顶之弈11.5天神裁决天使阵容攻略 新版本裁决天使运营思路...
  13. java如何表格一样对齐_如何水平对齐表格? (How can I horizontally align a form?)
  14. Win10下安装配置使用WSL2
  15. unity实现图片轮播效果_Unity 制作图片轮播功能
  16. C++中cout的基础语法与换行符endl的用法
  17. python实现淘宝毫秒级秒杀 自动付款
  18. 怎么修改路由器地址的默认IP
  19. 机器学习 生成_使用机器学习的Midi混搭生成独特的乐谱
  20. 多线程管程法(生产者消费者问题)

热门文章

  1. 支持python的交易软件_能用python的期货交易软件,期货量化交易软件哪个好
  2. windows ,linux 漏洞集
  3. JavaScript手机号码摇奖
  4. 【JZOJ A组】C
  5. 使用vue+echarts快速进行全国地图与各省市地图联动(下钻地图), 引入省份js文件
  6. 腾讯滨海大厦 智能楼宇 智慧建筑 3D可视化管理系统-优锘科技-ThingJS物联网开发案例... 1
  7. 3.2 AJAX发布帖子 显示帖子详情
  8. 金三银四铜五铁六,面试得做好这个准备
  9. afe模拟前端的重要性_模拟前端afe的作用
  10. 戳破中台泡沫,软件定义让数字中台脱虚入实