最近在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. 转:Android软件开发之PreferenceActivity中的组件

    本文转于 “雨松MOMO的程序世界” 博客,请务必保留此出处http://xys289187120.blog.51cto.com/3361352/656784 1.PreferenceActivity ...

  2. JavaScript设置右下角悬浮窗

    很多时候,我们需要设置一个dom节点到浏览器窗口的右下角.我们需要那个元素可以在窗口Scroll滚动或者变换大小resize的时候都可以保持浮动在那个位置.这个时候,我在网上看了看,发现很多框架什么啊 ...

  3. 阻塞式和非阻塞式IO

    有很多人把阻塞认为是同步,把非阻塞认为是异步:个人认为这样是不准确的,当然从思想上可以这样类比,但方式是完全不同的,下面说说在JAVA里面阻塞IO和非阻塞IO的区别 在JDK1.4中引入了一个NIO的 ...

  4. Mysql 操作手册

    mysql操作手册 版本:5.6.16mysql linux安装基本步骤:#rpm -e --nodeps mysql-lib-5.1.*#rpm -ivh mysql-server#rpm -ivh ...

  5. lower_bound()函数

    头文件 # include<algorithm> 函数简介 lower_bound()返回一个 iterator 它指向在[first,last)标记的有序序列中可以插入value,而不会 ...

  6. 【感悟】看Hyouka的感想 (1)

    最近偶然从B站看到了<冰菓>这个(个人觉得是推理)番   我突然觉得自己曾经做的一些行为欠妥   有才能者的不自知,是对无才能者的讽刺   举个例子就是:即当别人说你很牛的时候,你却说你只 ...

  7. Java面向对象程序设计--与C++对比说明:系列2(类机制)

    1. Java中的包机制(Package): 1.1   Java容许将一系列的类组合到一个叫package的集合中.package机制是一种非常好的管理工作的方式并可以将你自己的工作和系统或第三方提 ...

  8. 不为人知的Locked

    在属性面板上,有一个Locked属性,什么时候添加上去的,真是没有注意到,它的说明为:确定是否可以移动控件或调整控件的大小,默认是为false的,设置为true以后,当前选中的控件会在左上角出现一个锁 ...

  9. 在python 中有时候我们用数组

    在python 中有时候我们用数组操作数据可以极大的提升数据的处理效率, 类似于R的向量化操作,是的数据的操作趋于简单化,在python 中是使用numpy模块可以进行数组和矢量计算. 下面来看下简单 ...

  10. php基础知识【函数】(1)数组array

    一.排序 1.sort -- 从最低到最高排序,删除原有的键名,赋予新的键名[字母比数字高] 2.rsort -- 逆向排序(最高到最低),删除原有的键名,赋予新的键名[字母比数字高] 3.asort ...