Android Settings开发总结

目录

界面构成

主界面

事件响应

搜索栏

常用调试技巧

其它子模块

应用与通知

Open,卸载等的控制与显示


界面构成

主界面使用的layout是:settings_main_dashboard,子界面使用的layout是:settings_main_prefs。

主界面使用DashboardSummary(Fragment)进行填充(RecyclerView),子界面都是使用各自的Fragment进行填充。

settings_main_dashboard中只有一个FrameLayout,后面会将其替换为DashboardSummary。

settings_main_prefs中也存在一个叫main_content的FrameLayout,后面会将其替换为各自的Fragment。

界面渲染可参考:Android O Settings源码流程分析(界面渲染篇)

主界面

RecyclerView,用DashboardAdapter填充数据。

里面包括setConditions,setSuggestions,setCategory。

一级界面数据加载机制一级菜单

对应TopLevelSettings.java,布局文件:

top_level_settings.xml

二级菜单是动态加载和静态xml布局文件, preferenceScreen, PreferenceController中控制数据更新。

默认数据来源于SettingProvicer.

事件响应

1.当点击主界面上的item时会调用Utils.startWithFragment方法
2.在Utils.startWithFragment会跳转至SubSettings,对应的fragment也作为参数传递给了SubSettings
3.SubSettings是一个空的activity,但SubSettings继承于SettingsActivity,因此会调用父类SettingsActivity的onCreate方法
4.在onCreate方法中,className为SubSettings,isSubSettings为true,mIsShowingDashboard为false
5.因此会执行switchToFragment(initialFragmentName, initialArguments, true, false, mInitialTitleResId, mInitialTitle, false);
6.通过switchToFragment将settings_main_prefs的main_content替换为了子界面对应的fragment

搜索栏

搜索栏在settings_main_dashboard.xml 中的search_bar,布局文件为search_edittext.xml,对应SearchActivity,SearchFragment,用RecyclerView来显示搜索项。

实现原理参考:Settings搜索栏实现原理

常用调试技巧

针对Fragement类型子界面,可用 adb logcat -s SubSettings 轻松查看进入了哪个界面。

其它子模块

应用与通知

Open,卸载等的控制与显示

AppInfoDashboardFragment----(instant_app_buttons 打开那一栏)----launch 按钮----(InstantAppButtonsPreferenceController.java 控制打开按钮显示否, 点击事件在AppButtonsPreferenceController (里面的refreshUi控制界面刷新))

锁屏

见 SystemUI StatusBar状态栏部分功能记录

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值