Android实现固定头部信息,挤压动画(相似通讯录)
半年前,那时候我还是个大四的学生,每天都在找工作度过,想去北京体验一下蚁族生活,奋然离开了济南,哎...在济南我们学校还是数得着的好学校,去了北京就什么都不是了,一切的辛酸仅仅有自己知道,那时候的我仅仅找开发方面的工作,也第一次体会到了女生的劣势...
在找工作的过程中,大部分都是实习,跟我的预想有点冲突,去了XX集团,人家仅仅要211,985的,没办法,去了XX工厂收到了类似通讯录的这么个任务...
废话少说,開始今天的主题
在非常多应用中,看到这种listview:listview滑动过程中分组标题固定在上方。当第二个组滑上来时,第一个组才跟着上滑,下一个组固定,直到该组也滑出上边缘。
有位大神们写的比較高深,能够去借鉴一下http://blog.csdn.net/guolin_blog/article/details/9033553
因为我比較菜鸟,所以方法比較简单,但实现的功能差点儿相同,主要使用了git上的源代码,直接拿来调用了
1.从github上下载源代码,下载地址https://github.com/JimiSmith/PinnedHeaderListView
2.把PinnedHeaderListView中的library导入项目中
3.新建项目,并引用library
大概内容就这些,以下简介一下代码:
1.在MainActivity的布局文件里增加下面代码:
给个小技巧,按住shift+ctrl+T,输入PinnedHeaderListView就能找到za.co.immedia.pinnedheaderlistview.PinnedHeaderListView,直接写进去就能够
<za.co.immedia.pinnedheaderlistview.PinnedHeaderListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
2.事实上PinnedHeaderListView继承的ListView,所以使用方法也差点儿相同,下一步就须要写Adapter了,个人习惯比較喜欢自己定义,能够依照自己的想法来写,可是适配器要继承SectionedBaseAdapter
/**
*
*/
package com.thea.pinnedsectiondemo.adapter; import java.util.List; import com.thea.pinnedsectiondemo.R; import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.TextView;
import za.co.immedia.pinnedheaderlistview.SectionedBaseAdapter; /**
* @author thea
*
* 2014-10-16
*/
public class MyPinnedListViewAdapter extends SectionedBaseAdapter{ private List<String> sectionList;
private List<String> list;
private Context context; public MyPinnedListViewAdapter(Context context,List<String> sectionList, List<String> list) {
super();
this.sectionList = sectionList;
this.list = list;
this.context = context;
} @Override
public Object getItem(int section, int position) {
// TODO Auto-generated method stub
return null;
} @Override
public long getItemId(int section, int position) {
// TODO Auto-generated method stub
return 0;
} @Override
public int getSectionCount() {
// TODO Auto-generated method stub
return sectionList.size();
} @Override
public int getCountForSection(int section) {
// TODO Auto-generated method stub
return list.size();
} @Override
public View getItemView(int section, int position, View convertView,
ViewGroup parent) {
ViewHold hold=null;
if (convertView==null) {
hold=new ViewHold();
convertView=LinearLayout.inflate(context, R.layout.list_item, null);
hold.tv_item=(TextView) convertView.findViewById(R.id.tv_item);
convertView.setTag(hold);
} else {
hold=(ViewHold) convertView.getTag();
}
hold.tv_item.setText(list.get(position));
return convertView;
} @Override
public View getSectionHeaderView(int section, View convertView,
ViewGroup parent) {
ViewHold hold=null;
if (convertView==null) {
hold=new ViewHold();
convertView=LinearLayout.inflate(context, R.layout.section_item, null);
hold.tv_section=(TextView) convertView.findViewById(R.id.tv_section_item);
convertView.setTag(hold);
} else {
hold=(ViewHold) convertView.getTag();
}
hold.tv_section.setText(sectionList.get(section));
return convertView;
} class ViewHold{
private TextView tv_section,tv_item; }
}
3.剩下的就是MainActivity,事实上就跟ListView的使用都一样了,这里就不贴代码了
ok,完毕
源代码下载地址:http://download.csdn.net/detail/elinavampire/8047885
Android实现固定头部信息,挤压动画(相似通讯录)的更多相关文章
- Android系统联系人全特效实现(上),分组导航和挤压动画
记得在我刚接触Android的时候对系统联系人中的特效很感兴趣,它会根据手机中联系人姓氏的首字母进行分组,并在界面的最顶端始终显示一个当前的分组.如下图所示: 最让我感兴趣的是,当后一个分组和前一个分 ...
- Midnight.js – 实现奇妙的固定头部切换效果
Midnight.js 是一款 jQuery 插件,在页面滚动的时候实现多个头设计之间的切换,所以你总是有一个头与它下面的内容层叠,看起来效果很不错. Midnight.js 可以让你轻松实现这种切换 ...
- HTTP消息中header头部信息的讲解
HTTP Request的Header信息 1.HTTP请求方式 如下表: GET 向Web服务器请求一个文件 POST 向Web服务器发送数据让Web服务器进行处理 PUT 向Web服务器发送数据并 ...
- HTTP消息中Header头部信息整理
1.HTTP请求方式 GET 向Web服务器请求一个文件 POST 向Web服务器发送数据让Web服务器进行处理 PUT 向Web服务器发送数据并存储在Web服务器内部 HEAD 检查一个对象是否存在 ...
- Android带有粘性头部的ScrollView
前言,一天在点外卖的时候,注意到饿了么列表页的滑动效果不错,但是觉得其中的手势滑动还是挺复杂的,正好又碰到了在熟悉Touch事件的理解当中,所以就抽空对着饿了么的列表页面尝试写写这个效果 1.先贴一个 ...
- Android开发之漫漫长途 XVII——动画
该文章是一个系列文章,是本人在Android开发的漫漫长途上的一点感想和记录,我会尽量按照先易后难的顺序进行编写该系列.该系列引用了<Android开发艺术探索>以及<深入理解And ...
- HTTP头部信息和错误代码详解-《HTTP权威指南》
最近在调试 前后端分离的请求测试,遇到了一个405错误, 无法接受,于是开始了人肉搜索405. 最后 还是HTTP头部信息里的Accept:application/json 这个Accept 导致的, ...
- Android 获取图片exif信息
使用android api读取图片的exif信息 布局代码: <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...
- android之读取联系人信息
联系人信息被存放在一个contacts2.db的数据库中 主要的两张表 读取联系人 读取联系人需要知道联系人内容提供者的地址,以及对应的操作对象.一般情况下操作对象是的命名方式和表明是一致的. 布局文 ...
随机推荐
- hdu 2110 基础母函数
题意:退出本身并不麻烦,麻烦的是,退出的人需要取走相应比例(1/3)金额的资产.假设公司此时一共有n种价值的资产,每种价值的资产数量已知,请帮助心烦意乱的XHD夫妇计算一共有多少种分割资产的方法. ...
- bzoj 4176: Lucas的数论 -- 杜教筛,莫比乌斯反演
4176: Lucas的数论 Time Limit: 30 Sec Memory Limit: 256 MB Description 去年的Lucas非常喜欢数论题,但是一年以后的Lucas却不那么 ...
- Codeforces Round #359 (Div. 2) B. Little Robber Girl's Zoo 水题
B. Little Robber Girl's Zoo 题目连接: http://www.codeforces.com/contest/686/problem/B Description Little ...
- hdoj 1002 A + B Problem II 高精度 java
A + B Problem II Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- C#情怀与未来,怨天尤人还是抓住机会,能否跟上dnc新时代浪潮?
C#情怀与未来,怨天尤人还是抓住机会,能否跟上dnc新时代浪潮? 经常看到有.NET圈子在讨论是否应该转其它语言 C#情怀是一方面,如果觉得C#未来没前途,光靠情怀是撑不住的, 建议对C#未来 ...
- C++反汇编-结构体和类
学无止尽,积土成山,积水成渊-<C++反汇编与逆向分析技术揭秘> 读书笔记 对象的内存布局 一般计算公式: 对象内存大小 = sizeof(数据成员1)+ sizeof(数据成员2) +. ...
- HDU 2089 不要62(数位DP·记忆化搜索)
题意 中文 最基础的数位DP 这题好像也能够直接暴力来做 令dp[i][j]表示以 j 开头的 i 位数有多少个满足条件 那么非常easy有状态转移方程 dp[i][j] = sum{ dp[ ...
- java 实现输出姓和名
package xiaojie; import java.util.Scanner; public class baiJiaXing { public static void main(String[ ...
- 用户空间程序的函数跟踪器 (Function Tracer)
http://blog.csdn.net/robertsong2004/article/details/38499995
- MVC在基控制器中实现处理Session的逻辑
当需要跨页面共享信息的时候,Session是首当其冲的选择,最典型的例子就是:在处理登录和购物车逻辑的时候需要用到Session.在MVC中,可以把处理Session的逻辑放在一个泛型基控制器中,但需 ...