仿支付宝账单列表


        业务需要,做了个仿支付宝账单列表的demo,在此做下记录。

        demo依赖于GitHub上的开源组件StickyListHeaders,这里只简单得说下实现的重点。具体的使用请参考文末的demo源码或是前面提到的那个开源组件。

        先看下效果图:




       下面主要说下重点的东西:

       

       依赖开源组件:StickyListHeaders

               主要使用控件:ExpandableStickyListHeadersListView

               主要使用接口:StickyListHeadersAdapter

关键问题:

1、列表子项布局与月份显示的布局是分开的

      列表子项布局与常见的一样。

      月份显示的布局由接口StickyListHeadersAdapter提供的getHeaderView

方法处理。处理方式与列表子项布局相同。

2、相同月份数据是如何归到一组的

      接口StickyListHeadersAdapter提供了getHeaderId方法,返回值为long型。只要不同列表项getHeaderId的返回值相同,则会被归为一组。

3、列表项HeaderId的计算

   要求:在相同月份里的所有列表项的HeaderId要相同

   实现原理:列表数据中有时间字段,对所有相同月份的数据,其时间字段截取到月份的时间应该是相同的。则直接在getHeaderId中返回数据项中时间字段格式化到年月的时间长度(ms)即可。

       具体计算:参照DateUtils.getMonthTime

4、计算月份布局(HeaderView)显示的文本

      规则:本年本月显示“本月”;本来其他月份只显示月份;非本年日期全部显示年份+月份

   方法:对比系统时间与数据项中时间字段,

   实现:参照DateUtils.getShopListHeader


附上demo源码:

  http://download.csdn.net/detail/u013919836/9467448



你可能感兴趣的:(android)