您的位置:首页 > 移动开发 > 微信开发

Android: listview 分组上滑标题碰撞效果,固定标题效果,仿QQ微信

2014-08-06 16:39 323 查看
原文:http://blog.csdn.net/jdsjlzx/article/details/20697257

在很多应用中,看到这样的listview:listview滑动过程中分组标题固定在上方,当第二个组滑上来时,第一个组才跟着上滑,下一个组固定,直到该组也滑出上边缘。世上无难事只怕有心人,在github上就有人做出来了,而且效果很好(后来发现安卓自带应用中联系人应用就是这样的,估计github的作者也是仿照着联系人做出来的吧)。

先看截图:







PinnedSectionListView继承自listview,众所周知listview的每个子view都是按顺序跟着滚动的,要实现联系人listview的效果还真的找不到思路。看了PinnedSectionListView之后,感觉要改造一个现有的控件,一般都是通过重绘子view来实现的。ViewGroup(ListView继承自它)重绘子view的方法是dispatchDraw。

看看PinnedSectionListView在dispatchDraw中有那些特别的处理:

关键在于
canvas.translate(pLeft, pTop + mTranslateY);
意思是在绘制
mPinnedSection
的时候,listview滑动了多长的距离,就将canvas移动多少的距离,使
mPinnedSection
始终在可见的范围内固定不变。

使用方法:

1.在xml布局文件中将ListView替换成PinnedSectionListView

2.让你的ListAdapter继承
PinnedSectionListAdapter
接口,最简单的做法是只增加
isItemViewTypePinned
方法,该方法必须在item为pinned的情况下返回true。

项目地址:https://github.com/beworker/pinned-section-listview

宣传下本人的小***:

单机斗地主-wifi版
希望大家多多支持。能下载下来玩一玩。

豌豆荚市场: 搜索 "联机斗地主" "单机斗地主-wifi版"都能搜到。

直达连接 http://www.wandoujia.com/apps/com.hj.singlejoker
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐