Android Settings开发总结

界面构成

主界面使用的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。

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

二级菜单是动态加载和静态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搜索栏实现原理

猜你喜欢

转载自blog.csdn.net/lanmengfenghe/article/details/114371759