zoukankan      html  css  js  c++  java
  • 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


  • 相关阅读:
    Chromium 和Webkit 3月14日的最近进展:多标签选择、标签标题省略、动画API和新的Chromium Logo
    奇妙的HTML5 Canvas动画实例
    XNA那些事(一) 框架工作原理
    实现跨浏览器的HTML5占位符
    编写超级可读代码的15个最佳实践
    谈HTML5和CSS3的国际化支持
    HTML5 Guitar Tab Player
    如何设置让网站禁止被爬虫收录?robots.txt
    YourPHP笔记
    Robots.txt  禁止爬虫
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/6753581.html
Copyright © 2011-2022 走看看