
谈到Jetpack,大家都以为是一堆框架,事实上它的内容要大的多。本文以大家熟知的Preference组件为切入点,逐步探究它的前世今生。
Preference作为设置画面的标准实现,大家都不陌生。这个组件跟随Android系统一同诞生,之后便不断地变更。先是Support库中出现了独立版本,接着整合到了AndroidX中,最后在Android 10的时候完全废弃了SDK版本。
1. Preference的设计
Preference组件的API设计得非常简单、清晰。
- PreferenceActivity或PreferenceFragment管理画面的生命周期和事件交互
- PreferenceScreen构建整个设置列表
- PreferenceCategory和Preference展示一组或单个设置条目
| 类 | 作用 |
|---|---|
| PreferenceActivity | 提供了Preference布局设置和查找的ListActivity |
| PreferenceFragment | 展示Preference布局的专属Fragment |
| Preference | 所有Preference组件的基类,预设了Preference处理的基本API |
| PreferenceGroup | 扩展自Preference,用以嵌套Preference组件并内置List进行管理 |
| PreferenceScreen | 扩展自PreferenceGroup,嵌套Preference组件的根布局,内部将管理列表View和对应的Adapter |
| PreferenceCategory | 扩展自PreferenceGroup,展示设置条目分组的小标题,不可点击、不可获得焦点 |
| SwitchPreference | 内置了Switch控件的Preference组件,类似的扩展组件还有ListPreference、EditTextPreference等 |
| … |
2. 落寞的SDK
Preference组件是Android 1.0发布就引入的元老级组件,那会RecyclerView还未推出,自然采用经典的ListView构建整个设置列表。
使用起来非常简单,跟普通视图的写法并无二致。
<PreferenceScreen android:title="@string/my_preference_settings">
<PreferenceCategory
android:title="@string/my_preference_general" >
<Preference
android:fragment="com.android.settings.applications.ManageApplications"
android:key="app"
android:title

本文详细介绍了Android中的Preference组件从SDK到AndroidX的演变历程,包括在Support库和AndroidX中的变化。Preference组件作为设置界面的标准实现,经历了从ListView到RecyclerView的转变。随着AndroidX的推出,Jetpack整合了Support库和AndroidArchitectureComponents,提供了更好的开发体验和向后兼容性。文章还探讨了Jetpack与AndroidX的关系,以及Google对于Android开发的未来构想——Modern Android Development (MAD)。
最低0.47元/天 解锁文章
616

被折叠的 条评论
为什么被折叠?



