前言
所谓好记性不如烂笔头,为了提升自己也为了让未来的小白能多一份资源!从现在开始整理项目里的模块,把自己做过以及将要做的需求一点一点记录下来!
效果图
仿支付宝账单
其实这个网上已经有各式各样的demo了,github上的框架也非常优秀!!
我用的是StickyListHeadersListView实现的这个需求,api与listview没有什么区别,关键在与适配器的实现!!首先当然是依赖
compile ‘se.emilsjolander:stickylistheaders:2.7.0’
实现步骤
- 在布局文件中引入StickyList(详细的xml属性用法这里就不说了)
<se.emilsjolander.stickylistheaders.StickyListHeadersListView
android:id="@+id/stickylist"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:cacheColorHint="#00000000"
android:clipToPadding="false"
android:drawSelectorOnTop="true"
android:listSelector="#00000000"
android:overScrollMode="never"
android:scrollbars="none" />
- 设置分组id,根据此id进行分组
-拿到数据后根据需求设置分组id(本项目中是根据时间来分组)
private void setCupId() {
for (int i = 0; i < mDatas.size(); i++) {
mDatas.get(i).setProj_id(splitTime(mDatas.get(i).getCreate_time()));
}
}
private String splitTime(String create_time) {
String[] split = create_time.split(" ");
String[] result = split[0].split("-");//再切割日期2017-8-8
return result[0] + result[1];
}
- 设置适配器实现StickyListHeadersAdapter(两个重点需要重写的方法)
-getHeaderId()返回刚刚设置的分组id,相同的id即视为一个组
-getHeaderView()与getView()类似, 填充头部布局即可
@Override
public long getHeaderId(int position) {
return Long.parseLong(this.mPlanDetails.get(position).getProj_id());
}
- 最后setAdapter将适配器放入即可实现支付宝账单列表拉!