昨日,vivo与NBA在上海举办了战略发布会,宣布vivo将成为NBA在中国唯一的手机市场官方合作伙伴。未来多年里,双方将在赛事、产品、服务以及品牌营销等方面展开全方位战略合作。
根据内部人士透露,vivo将会推出一系列NBA主题的深度定制手机以及周边产品。同时,在未来多年中参与NBA国际系列赛中国站、NBA球迷答谢之夜等一系列品牌活动。此外,vivo还将推出“vivo校园篮球计划”、“vivo走进赛场”等一系列品牌定制的NBA主题活动。
本篇来自 张旭童 的投稿,分享了如何使用 ItemDecoration 实现 悬停头部分组列表功能,这种实现方式还是很简便的,希望能帮助有需要的朋友。
张旭童 的博客地址:
http://blog.csdn.net/zxt0601
效果如下,两个ItemDecoration,一个实现悬停头部分组列表功能,一个实现分割线:
网上关于实现带悬停分组头部的列表的方法有很多,像我看过有主席的自定义 ExpandListView 实现的,也看过有人用一个额外的父布局里面套 RecyclerView/ListView + 一个头部View(位置固定在父布局上方)实现的。
对于以上解决方案,有以下几点个人觉得不好的地方:
1. 现在 RecyclerView 是主流。
2. 在 RecyclerView 外套一个父布局总归是增加布局层级,容易overdraw,显得不够优雅。
3. item布局 实现带这种分类头部的方法有两种,一种是把分类头部当做一种itemViewtype(麻烦),另一种是每个 Item布局 都包含了分类头部的布局,代码里根据postion 等信息动态 Visible,Gone头部(布局冗余,item效率降低)。
况且Google为我们提供了 ItemDecoration,它本身就是用来修饰 RecyclerView 里的Item 的,它的 getItemOffsets()、 onDraw() 方法用于为Item分类头部留出空间和绘制(解决缺点3),它的 onDrawOver() 方法用于绘制悬停的头部View(解决缺点2)。
而且更重要的是,ItemDecoration 出来这么久了,你还不用它?
本文就利用 ItemDecoration 打造 分组列表,并配有悬停头部功能。