最近在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框架的使用的更多相关文章

  1. 2015最流行的Android组件、工具、框架大全

    Android 是目前最流行的移动操作系统之一. 随着新版本的不断发布, Android的功能也日益强大, 涌现了很多流行的应用程序, 也催生了一大批的优秀的组件. 本文试图将目前流行的组件收集起来以 ...

  2. android开源项目和框架(转)

    特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...

  3. android开源项目和框架

    特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...

  4. 收藏的Android非常好用的组件或者框架。

    博客分类: android android框架 先说两个网站: http://www.androidviews.net/ http://www.theultimateandroidlibrary.co ...

  5. 【转】android开源项目和框架

      特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github ...

  6. gitHub项目框架使用排名

    项目名称 项目简介                                  使用心得                1. react-native 这 个是 Facebook 在 React ...

  7. android开源框架和开源项目(转)

    特效: http://www.androidviews.net/ http://www.theultimateandroidlibrary.com/ 常用效果: 1. https://github.c ...

  8. 收藏的Android很好用的组件或者框架。

    收藏的Android很好用的组件或者框架. android框架  先说两个站点: http://www.androidviews.net/ 非常好的国外开源码站,就是訪问速度有点慢啊 http://w ...

  9. Android开发中用到的第三方框架汇总

    最近上网搜索了一些框架资料,整理了以下常用框架,希望在项目中有所帮助. 1.网络请求框架 android-async-http 该网络框架的介绍文章地址:http://www.cnblogs.com/ ...

随机推荐

  1. 2014年11月17号------html起始

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. CSS制作hover下划线动画

    .demo1{ position: relative; text-decoration: none; font-size: 20px; color: #333; } .demo1:before{ co ...

  3. 用Xamarin和Visual Studio编写iOS App

    一说开发 iOS app,你立马就会想到苹果的开发语言 Objective C/Swift 和 Xcode.但是,这并不是唯一的选择,我们完全可以使用别的语言和框架. 一种主流的替换方案是 Xamar ...

  4. 一次 php nusoap 调试过程

    今天跟同事调用一个数据api ,用soap方式调用.本以为很简单的事情,却弄到了晚上. 因为有过调试经验,直接按照以往的过程直接部署,结果是错误. 1. 以为是调用方式错了,问了一下对接的同事,没问题 ...

  5. python 简单谈谈“类”

    文章出处:http://www.cnblogs.com/winstic/,请保留此连接 面向对象是python语言的一大特色,而类又是面向对象编程的核心 先来一段关于类的声明: class myCla ...

  6. Warning File `.depend' has modification time 1.6 s in the future

    一.前提知识 主机时间与虚拟机时间不同步所致.我们在某一操作系统所属磁盘空间下创建一个文件,那么这个文件的创建时间是以磁盘所属的操作系统的时钟为基准的. 我们假设主机windows的系统时间是10:0 ...

  7. MVC5 学习笔记1

    新装了vs2013 开始试着学习MVC5 首先用了2013的内置的框架 这里提三点 1. bootstrap (现已加入mvc5豪华套餐) 他的框架已经加入了bootstrap 3.0的版本(http ...

  8. Socket 错误总结

    错误 因为并没有搞清楚accept函数的使用,所以导致不停的发送失败,同时还不知道错误在哪里,无意中看见errno这个库,可以记录错误的原因,才知道原因在于没有用客户端的套接字进行接收数据,而这个客户 ...

  9. C#反射(一) 【转】

    在还不太熟悉反射的昨天,以为反射很神秘,在网上到处找答案.今天找了段代码敲了一下,茅塞顿开!其实反射也就那么简单的一回事!    反射是一种机制,通过这种机制我们可以知道一个未知类型的类型信息.比如, ...

  10. ruby定时脚本

    ruby定时脚本的实现涉及到三个方面: 要定时执行的代码 定时控制(设置定时的时间) 将脚本后台化 实例: # in func.rb def func # the function body goes ...