仿美团选择城市、微信通讯录导航悬停分组索引列表。

时间:2021-08-15 06:05:08
【文件属性】:
文件名称:仿美团选择城市、微信通讯录导航悬停分组索引列表。
文件大小:4.27MB
文件格式:ZIP
更新时间:2021-08-15 06:05:08
android 我们用ItemDecoration为RecyclerView打造了带悬停头部的分组列表。其实Android版微信的通讯录界面,它的分组title也不是悬停的,我们已经领先了微信一小步(认真脸)~ 再看看市面上常见的分组列表(例如饿了么点餐商品列表),不仅有悬停头部,悬停头部在切换时,还会伴有切换动画。 关于ItemDecoration还有一个问题,简单布局还好,我们可以draw出来,如果是复杂的头部呢?能否写个xml,inflate进来,这样使用起来才简单,即另一种简单使用onDraw和onDrawOver的姿势。 so,本文开头我们就先用两节完善一下我们的ItemDecoration。然后进入正题:自定义View实现右侧索引导航栏IndexBar,对数据源的排序字段按照拼音排序,最后将RecyclerView和IndexBar联动起来,触摸IndexBar上相应字母,RecyclerView滚动到相应位置。(在屏幕中间显示的其实就是一个TextView,我们set个体IndexBar即可) 由于大部分使用右侧索引导航栏的场景,都需要这几个固定步骤,对数据源排序,set给IndexBar,和RecyclerView联动等,所以最后再将其封装一把,成一个高度封装,因此扩展性不太高的控件,更方便使用,如果需要扩展的话,反正看完本文再其基础上修改应该很简单~。
【文件预览】:
SuspensionIndexBar-master
----gradlew.bat(2KB)
----gradlew(5KB)
----gradle.properties(855B)
----gif()
--------weixin.gif(688KB)
--------citylist(1.99MB)
--------meituan.gif(2.25MB)
--------ItemDecorationIndexBar_SwipeDel.gif(423KB)
----app()
--------proguard-rules.pro(671B)
--------src()
--------.gitignore(7B)
--------build.gradle(732B)
----gradle()
--------wrapper()
----.idea()
--------gradle.xml(807B)
--------runConfigurations.xml(564B)
--------misc.xml(3KB)
--------vcs.xml(167B)
--------.name(22B)
--------copyright()
--------modules.xml(617B)
--------encodings.xml(159B)
--------compiler.xml(686B)
----.gitignore(761B)
----README.md(7KB)
----settings.gradle(28B)
----indexlib()
--------proguard-rules.pro(671B)
--------src()
--------.gitignore(7B)
--------build.gradle(736B)
----build.gradle(541B)

网友评论