Android——UI篇:使用pinnedheaderlistview实现联系人头部滑动到顶部定住的功能
来源:互联网 发布:玛丽莲曼森的衣服淘宝 编辑:程序博客网 时间:2024/05/21 11:36
一、先看效果图
二、为了使用方便,这里我将这个功能打成了一个jar包,在这里附上jar包的下载
http://download.csdn.net/detail/qq_35373333/9909677
三、先贴三个布局文件:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <com.example.zhuxiaofeng.pinnedheaderlistviewdemo.PinnedHeaderListView android:id="@+id/pinnedListView" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white"> </com.example.zhuxiaofeng.pinnedheaderlistviewdemo.PinnedHeaderListView></LinearLayout>
header_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#aa000000"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/textItem" android:height="82dp" android:textColor="#FFFFFFFF"/></LinearLayout>
list_item.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="#FFF" android:orientation="horizontal"> <TextView android:id="@+id/textItem" android:layout_width="wrap_content" android:layout_height="wrap_content" android:height="42dp" android:background="#FFF" android:textColor="#FF000000" /></LinearLayout>下面是适配器和Activity的代码:
新建一个适配器继承自:SectionedBaseAdapter
package com.example.zhuxiaofeng.pinnedheaderlistviewdemo;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.TextView;import com.example.pinnedheaderlistview.SectionedBaseAdapter;public class TestSectionedAdapter extends SectionedBaseAdapter { @Override public Object getItem(int section, int position) { return null; } @Override public long getItemId(int section, int position) { return 0; } /** * item的条数 * * @return */ @Override public int getSectionCount() { return 7; } /** * 每一个item下的条数 * * @param section * @return */ @Override public int getCountForSection(int section) { return 15; } /** * item布局 * * @param section * @param position * @param convertView * @param parent * @return */ @Override public View getItemView(int section, int position, View convertView, ViewGroup parent) { LinearLayout layout = null; if (convertView == null) { LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); layout = (LinearLayout) inflator.inflate(R.layout.list_item, null); } else { layout = (LinearLayout) convertView; } ((TextView) layout.findViewById(R.id.textItem)).setText("Section " + section + " Item " + position); return layout; } /** * item头布局 * * @param section * @param convertView * @param parent * @return */ @Override public View getSectionHeaderView(int section, View convertView, ViewGroup parent) { LinearLayout layout = null; if (convertView == null) { LayoutInflater inflator = (LayoutInflater) parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE); layout = (LinearLayout) inflator.inflate(R.layout.header_item, null); } else { layout = (LinearLayout) convertView; } ((TextView) layout.findViewById(R.id.textItem)).setText("Header for section " + section); return layout; }}适配器很简单,重要的方法注释都加上了,如果还是看不太懂的话建议运行一下项目,跑起来就瞬间懂了。
再看Activity代码:
package com.example.zhuxiaofeng.pinnedheaderlistviewdemo;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import com.example.pinnedheaderlistview.PinnedHeaderListView;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); PinnedHeaderListView listView = (PinnedHeaderListView) findViewById(R.id.pinnedListView); TestSectionedAdapter sectionedAdapter = new TestSectionedAdapter(); listView.setAdapter(sectionedAdapter); }}
好了,项目运行起来后就看到开始如图的效果了。
阅读全文
0 0
- Android——UI篇:使用pinnedheaderlistview实现联系人头部滑动到顶部定住的功能
- 使用PinnedHeaderListView实现固定头部的列表
- Android之联系人PinnedHeaderListView使用
- Android之联系人PinnedHeaderListView使用
- Android之联系人PinnedHeaderListView使用
- Android之联系人PinnedHeaderListView使用
- Android之联系人PinnedHeaderListView使用
- Android之联系人PinnedHeaderListView使用
- Android 联系人PinnedHeaderListView
- Android 联系人 PinnedHeaderListView
- Android_联系人PinnedHeaderListView使用
- 联系人左右滑动功能的实现
- 关于Andorid联系人应用中PinnedHeaderListView的实现分析
- Android SwipeActionAdapter结合Pinnedheaderlistview实现复杂列表的左右滑动操作
- 使用Jquery实现顶部导航栏在页面滑动到自身所在位置之后固定在顶部的效果
- 使用Jquery实现顶部导航栏在页面滑动到自身所在位置之后固定在顶部的效果
- Android下PinnedHeaderListView使用
- Android学习之联系人PinnedHeaderListView(通讯录)
- H5基础知识第十二课时(JS添加CSS样式)
- 在win10 安装cuda和tensorflow
- SmartGit试用过期再续期&使用
- CodeForces 196 C.Paint Tree(计算几何+递归)
- Linux——成长之路
- Android——UI篇:使用pinnedheaderlistview实现联系人头部滑动到顶部定住的功能
- NYOJ1023 还是回文(区间DP)
- POJ3253 Fence Repair
- Dialog简略总结
- gcc预处理、编译、汇编和链接详解
- 链表翻转(按K个一组)
- AndroidStudio之快捷键
- 模拟实现String类增删查改
- openstack中虚拟化技术的简介