stickyListHeaders框架的使用
最近在Demo中使用到了stickyListHeaders框架实现悬停效果
比较好用
在xml中
<se.emilsjolander.stickylistheaders.StickyListHeadersListView
android:id="@+id/list_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@android:color/white" />
和listView的配置方法差不多
在Activity中的使用
mAdapter = new MyStivkyAdapter(getActivity(), mGroupinfo);
lv.setAdapter(mAdapter);
我这是在fragment中使用的在actiity中使用才差不多
在适配器中的代码
public class MyStivkyAdapter extends BaseAdapter implements
StickyListHeadersAdapter {
private List<Group> groups;
private LayoutInflater mInflater;
private ViewHolder viewHolder;
HeaderViewHolder hvh;
public MyStivkyAdapter(Context context, List<Group> list) {
this.groups = list;
mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
return groups.size();
}
@Override
public Group getItem(int position) {
return groups.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list_item, null);
viewHolder.ivComplete = (ImageView) convertView
.findViewById(R.id.item_image);
viewHolder.tvTitle = (TextView) convertView
.findViewById(R.id.item_text1);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
viewHolder.ivComplete.setImageResource(R.drawable.ic_fire);
viewHolder.tvTitle.setText(groups.get(position).brandName);
return convertView;
}
@Override
public View getHeaderView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
hvh = new HeaderViewHolder();
convertView = mInflater.inflate(R.layout.item_heander, null);
hvh.tvHeader = (TextView) convertView.findViewById(R.id.text);
convertView.setTag(hvh);
} else {
hvh = (HeaderViewHolder) convertView.getTag();
}
hvh.tvHeader.setText(groups.get(position).brandInitial);
return convertView;
}
@Override
public long getHeaderId(int position) {
return groups.get(position).brandInitial.charAt(0);
}
class ViewHolder {
ImageView ivComplete;
TextView tvTitle;
}
class HeaderViewHolder {
TextView tvHeader;
}
}
其他和ListView的适配器差不多就是实现来一个框架的接口 并重写了2个方法
在
getHeaderView ()方法中是返回添加的头的内容 如一般的排序 A----Z来实现排序这时如果对getHeaderId不处理会默认在每个条目上添加一个头,
在getHeaderId返回值 猜测是用来判断两个条目的头是否相同,相同时第二个就不会添加,这时将实现将一个简单的悬浮了
stickyListHeaders框架的使用的更多相关文章
- 2015最流行的Android组件、工具、框架大全
Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...
- android开源项目和框架(转)
特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...
- android开源项目和框架
特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...
- 收藏的Android非常好用的组件或者框架。
博客分类: android android框架 先说两个网站: http://www.androidviews.net/ http://www.theultimateandroidlibrary.co ...
- 【转】android开源项目和框架
特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github ...
- gitHub项目框架使用排名
项目名称 项目简介 使用心得 1. react-native 这 个是 Facebook 在 React ...
- android开源框架和开源项目(转)
特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...
- 收藏的Android很好用的组件或者框架。
收藏的Android很好用的组件或者框架. android框架 先说两个站点: http://www.androidviews.net/ 非常好的国外开源码站,就是訪问速度有点慢啊 http://w ...
- Android开发中用到的第三方框架汇总
最近上网搜索了一些框架资料,整理了以下常用框架,希望在项目中有所帮助. 1.网络请求框架 android-async-http 该网络框架的介绍文章地址:http://www.cnblogs.com/ ...
随机推荐
- ios专题 - 安全
iOS通过以下几种机制来保全整个系统的安全性: 一:系统结构 所有iOS设备中,系统与硬件都高度集成,从系统启动.系统更新.应用的安装.应用的运行时等多个方面来保全系统的安全,具体包括: 1:所有iO ...
- 修正constructor的指向
function Aaa(){ } //Aaa.prototype.constructor = Aaa; //每一个函数都会有的,都是自动生成的 Aaa.prototype.name = '小明' ...
- excel 无法打开文件,提示:向程序发送命令时出现问题
以下的方法以Excel为例,请一个一个的使用,总会有一个适合你的. 1 .兼容性 鼠标右击桌面Excel(或其他)的快捷方式,选“兼容性”,把以管理员身份运行此程序前的勾去掉,就一切ok 了. 如果桌 ...
- ubuntu npm 私有库搭建 (npmjs.org 官方版本)
目标 npm.xxx.com 安装和推送nodejs包 npmui.xxx.com 管理已经推送的nodejs包 安装 couchdb https://launchpad.net/~couch ...
- [CSS]background背景
css背景样式 序号 中文说明 标记语法 1 背景颜色 {background-color:数值} 2 背景图片 {background-image: url('imgpath/img ...
- C语言变量声明加冒号的用法
有些信息在存储时,并不需要占用一个完整的字节, 而只需占几个或一个二进制位.例如在存放一个开关量时,只有0和1 两种状态, 用一位二进位即可.为了节省存储空间,并使处理简便,C语言又提供了一种数据结构 ...
- C++编译器合成Default Constructor的4种情况
笔记C++编译器为编译器需要合成Default Constructor的4种情况. 1,Class A内含Class B对象,Class A没有Default Constructor时会在编译时合成D ...
- 结合rpyc使用python实现动态升级的方法
动态升级,就是程序不退出的情况下,将其代码更新的策略.假设集群含有多个机器,然后每个机器部署一套程序,当升级的时候就要去所有的上面部署一把. (1)有个包装程序专门负责接口并检查是否需要更新,当需要更 ...
- git实现版本回退
1. 首先查看自己的版本: ***:~/piaoshifu_object/epiao.piaoshifu.cn$ git log commit c8d5c67861d2d0e21856cc2b4f60 ...
- spoj 4487. Can you answer these queries VI (gss6) splay 常数优化
4487. Can you answer these queries VI Problem code: GSS6 Given a sequence A of N (N <= 100000) in ...