最近在实现图1这个设置页面的时候,第一眼看到设计稿的时候只是想着普通的LinearLayout加一些常见的ui控件就足够了,但是细想一下觉得这样布局里面重复的代码太多,而且后面要是再多添加几项设置或者删除某项设置,改动也挺大的,想着用RecyclerView带上header合footer实现起来更加合理,于是就使用RecyclerView实现了。
在用带header和footer的RecyclerView实现之前必须先确定好header和footer的布局,我是这样分类header和footer的,见图:
之所以把记录提醒也算到header里面而不是普通的一个item里面是因为记录提醒这个设置项点击开启之后,会在其下方出来一个提示时间的显示和修改的布局,当然这并不是说不能把记录提醒当做一个item处理,完全可以的,我只是偷点懒而已
那么选择好header和footer之后,接下来就是编程实现了,这里主要是适配器的代码来控制header,item和footer,所以只贴出适配器的代码,其他在activity为RecyclerView设置LayoutManager和适配器这部分代码都很简单了,适配器代码如下,部分地方已标注: