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







