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/ ...
随机推荐
- web页面的优化
众所周知,一个web页面通常会包括HTML(XHTML.XML).CSS.Javascript,而其中HTML(XHTML.XML)为结构化语言,用于构建页面结构和相关数据:CSS则负责页面的样式,即 ...
- C++判断Office版本——转载
自:http://blog.csdn.net/lpc_china/article/details/18359145 主要原理:查询windows注册表microsoft office软件项的值来判断版 ...
- android入门到熟练(二)----活动
1.活动创建对于每一个后端java类(继承至Activity或者ActionBarActivity)代码都有一个方法需要被重写[onCreate], 在此方法中可以加载界面资源文件或者绑定元素事件. ...
- sql知识
SQL 基本知识 SQL Server 是Microsoft 公司推出的关系型数据库管理系统.具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的 ...
- Android 中 View移动总结:ViewDragHelper学习及用法详解
如上图简单呈现出两个方块后,提出一个需求: 1.拖动方块时,方块(即子View)可以跟随手指移动. 2.一个方块移动时,另一个方块可以跟随移动. 3.将方块移动到左边区域(右边区域)后放开(即手指离开 ...
- apache日志文件 accesslog
因为想要看到apache的日志记录用户请求某个页面所花的时间,需要添加额外参数才会记录,所以临时查了下哦..记下来了 在httpd.conf里可以看到一行这样的配置 LogFormat "% ...
- iOS: 学习笔记, Swift名字空间
在Swift中, 名字空间是用class(extension)嵌套来实现的, 下面用一个简单例子来进行展示 // // main.swift // SwiftNameSpace // // Creat ...
- 了解SOA是什么!
面向服务架构 面向服务的体系结构(service-oriented architecture,SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来 ...
- 关于Android中传递数据的一些讨论--备用
在Android中编写过程序的开发人员都知道.在Activity.Service等组件之间传递数据(尤其是复杂类型的数据)很不方便.一般可以使用Intent来传递可序列化或简单类型的数据.看下面的代码 ...
- Noah的学习笔记之Python篇:命令行解析
Noah的学习笔记之Python篇: 1.装饰器 2.函数“可变长参数” 3.命令行解析 注:本文全原创,作者:Noah Zhang (http://www.cnblogs.com/noahzn/) ...