Android PinnedSectionListView 收缩
来源:互联网 发布:淘宝放心淘是什么意思 编辑:程序博客网 时间:2024/05/16 10:05
转自:http://blog.csdn.net/anddroid_lanyan/article/details/41895631
网上开源项目:https://github.com/beworker/pinned-section-listview,该项目用的是ArrayAdapter()..不太适合我,稍作修改,仿的微信界面
PinnedSectionListView修改了一行代码,不然会报错,代码如下
void createPinnedShadow(int position) {}》》
- if (layoutParams == null) {
- //layoutParams = (LayoutParams) generateDefaultLayoutParams();
- layoutParams = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
- pinnedView.setLayoutParams(layoutParams);
- }
效果图:
具体代码AdapterListView:
- package pinneactivity.example.ui;
- import java.util.ArrayList;
- import pinneactivity.example.ui.PinnedSectionListView.PinnedSectionListAdapter;
- import android.content.Context;
- import android.view.LayoutInflater;
- import android.view.View;
- import android.view.ViewGroup;
- import android.widget.BaseAdapter;
- import android.widget.ImageView;
- import android.widget.TextView;
- /*
- *
- * This is company of adapter
- *
- * @author YangWenlong
- */
- public class AdapterListView extends BaseAdapter implements PinnedSectionListAdapter{
- private ArrayList<Bean> list;
- private Context context;
- public ArrayList<Bean> getList() {
- return list;
- }
- public void setList(ArrayList<Bean> list) {
- if(list!=null){
- this.list = list;
- }else{
- list=new ArrayList<Bean>();
- }
- }
- public AdapterListView(Context context,ArrayList<Bean> list){
- this.setList(list);
- this.context=context;
- }
- @Override
- public int getCount() {
- // TODO Auto-generated method stub
- return list.size();
- }
- @Override
- public Bean getItem(int position) {
- // TODO Auto-generated method stub
- return list.get(position);
- }
- @Override
- public long getItemId(int position) {
- // TODO Auto-generated method stub
- return position;
- }
- @Override
- public View getView(int position, View converView, ViewGroup viewGrop) {
- // TODO Auto-generated method stub
- ViewHolder vh=null;
- if(converView==null){
- vh=new ViewHolder();
- converView=LayoutInflater.from(context).inflate(R.layout.item, null);
- vh.company_item=(TextView)converView.findViewById(R.id.title);
- vh.image=(ImageView)converView.findViewById(R.id.imageView1);
- converView.setTag(vh);
- }else{
- vh=(ViewHolder) converView.getTag();
- }
- Bean bean=getItem(position);
- vh.company_item.setText(bean.text);
- if (bean.type == Bean.SECTION) {
- vh.company_item.setBackgroundResource(R.drawable.bao_headview_bg);
- vh.image.setVisibility(View.GONE);
- }else{
- vh.company_item.setBackgroundResource(R.drawable.details_layout_bg);
- vh.image.setVisibility(View.VISIBLE);
- }
- return converView;
- }
- @Override
- public boolean isItemViewTypePinned(int viewType) {
- // TODO Auto-generated method stub
- return viewType == Bean.SECTION;//0是标题,1是内容
- }
- @Override
- public int getViewTypeCount() {
- return 2;//2种view的类型 baseAdapter中得方法
- }
- @Override
- public int getItemViewType(int position) {
- return ((Bean)getItem(position)).type;
- }
- public void refresh(ArrayList<Bean> arr){
- setList(arr);
- notifyDataSetChanged();
- }
- }
HeadView:
- package pinneactivity.example.ui;
- import android.app.Activity;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.LinearLayout;
- import android.widget.Toast;
- /*
- * Fail view
- *
- * @author YangWenlong
- */
- public class HeadView implements OnClickListener{
- private View view = null;
- private Activity activity;
- private LinearLayout newFriends;
- private LinearLayout grop;
- private LinearLayout tag;
- private LinearLayout publicNumber;
- private static HeadView headView = null;
- public static HeadView getInstance(Activity activity) {
- headView = new HeadView(activity);
- return headView;
- }
- public HeadView(Activity activity) {
- view=activity.getLayoutInflater().inflate(R.layout.item_head, null);
- this.activity=activity;
- }
- public HeadView initialization(){
- newFriends=(LinearLayout)view.findViewById(R.id.layout_new);
- grop=(LinearLayout)view.findViewById(R.id.layout_group);
- tag=(LinearLayout)view.findViewById(R.id.layout_tag);
- publicNumber=(LinearLayout)view.findViewById(R.id.layout_public);
- newFriends.setOnClickListener(this);
- grop.setOnClickListener(this);
- tag.setOnClickListener(this);
- publicNumber.setOnClickListener(this);
- return headView;
- }
- public View getView(){
- return view;
- }
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- if(v==newFriends){
- Toast.makeText(activity, "新朋友", Toast.LENGTH_SHORT).show();
- }else if(v==grop){
- Toast.makeText(activity, "群聊", Toast.LENGTH_SHORT).show();
- }else if(v==tag){
- Toast.makeText(activity, "标签", Toast.LENGTH_SHORT).show();
- }else if(v==publicNumber){
- Toast.makeText(activity, "公众号", Toast.LENGTH_SHORT).show();
- }
- }
- }
项目下载:http://download.csdn.net/detail/anddroid_lanyan/8252891
0 0
- Android PinnedSectionListView 收缩
- Android PinnedSectionListView 收缩
- Android PinnedSectionListView 收缩
- Android----PinnedSectionListView
- Android基于PinnedSectionListView实现联系人通讯录
- Android PinnedSectionListView异常崩溃报错
- Android PinnedSectionListView异常崩溃报错
- Android收缩控件,展开,收缩
- Android PinnedSectionListView实现滚动标题置顶/联系人列表效果
- PinnedSectionListView详细介绍(android开源项目)
- Android TextView收缩
- Android 收缩展开动画
- PinnedSectionListView使用
- android-点击文字收缩效果
- Android studio 代码收缩设置
- Android收缩式菜单demo
- 类似通讯录分组的Android PinnedSectionListView,且分组标签悬停滑入滑出
- 类似通讯录分组的Android PinnedSectionListView,且分组标签悬停滑入滑出
- POJ1067 取石子游戏(博弈论)
- Linux学习笔记(一)--区分版本、挂载、目录结构
- 网络传输中send与recv需要注意的地方----------来自博客讨论
- 在编写unity各项功能的时候出现一些编码无误却不能执行的问题
- 丢失的勤奋,我需要静静
- Android PinnedSectionListView 收缩
- UIbutton实现打地鼠的小游戏
- Maven的pom.xml介绍
- Spark sort (排序)
- Linux学习笔记(二)--Linux启动顺序、常用命令
- C++的深拷贝与浅拷贝
- sql左外连接、右外连接、全外连接
- Linux学习笔记(三)--文件权限、重定向、设置系统启动级别、管道流
- Makefile文件解析与编写