如何在ListView中嵌入ViewPager
来源:互联网 发布:淘宝促销词语 编辑:程序博客网 时间:2024/06/05 12:39
最近2个月一直忙着做项目,一个是挑战杯的互联网专项赛事,最终获得了国家三等奖。另一个是湖南省程序设计大赛应用开发类。终于忙完了。其中需要在listview中嵌入viewpager。于是网上学习了下。主要在第一个item中加入viewpager。
这里贴出适配器的代码
package zero.com.nweq.adapter;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;import java.util.List;import zero.com.nweq.R;import zero.com.nweq.beans.House;/** * 首页适配器 * Created by 邓慧 on 15/7/1. */public class HomeAdapter extends BaseAdapter { private static final int TYPE_LISTVIEW = 0; private static final int TYPE_VIEWPAGER = 1; private static final int TYPE_COUNT = 2; private Context context; private List<House> list; private View viewpager; public HomeAdapter(Context c,List<House> list){ super(); this.context =c; this.list =list; } /** * 因为第一个不计算在内,估总数减1 * @return */ @Override public int getCount() { return list.size()-1; } /** * 判断位置返回不同对象 * @param position * @return */ @Override public Object getItem(int position) { if(position == 0){ return viewpager; }else{ return list.get(position-1); } } @Override public long getItemId(int position) { return position; } /** * 主要方法 * @param position * @param convertView * @param parent * @return */ @Override public View getView(int position, View convertView, ViewGroup parent) { Holder holder = null; House house = null; switch (getItemViewType(position)) { case TYPE_LISTVIEW: house = list.get(position); if (convertView == null) { holder = new Holder(); convertView = LayoutInflater.from(context).inflate(R.layout.theme_list_view_item, null); holder.img = (ImageView) convertView.findViewById(R.id.theme_house_img); holder.name = (TextView) convertView.findViewById(R.id.theme_house_name); holder.place = (TextView) convertView.findViewById(R.id.theme_house_place); holder.time = (TextView) convertView.findViewById(R.id.theme_house_time); holder.theme = (TextView) convertView.findViewById(R.id.theme_house_theme); convertView.setTag(holder); } else { holder = (Holder) convertView.getTag(); } break; case TYPE_VIEWPAGER: if (convertView == null) { convertView = viewpager; } return convertView; } //之所以要减一,是因为复用convertView时,要排除第一个位置 if (viewpager != null){ position--; } holder.img.setImageResource(house.getImageId()); holder.name.setText(house.getHouseName()); holder.place.setText(house.getHousePlace()); holder.time.setText(house.getTime()); holder.theme.setText(house.getTheme()); return convertView; } /** * 提供方法从外部设置布局,这里可以设置不同的自定义Header布局,不仅仅是ViewPager * @param view */ public void setViewpager(View view){ viewpager = view; } /** * 获取不同的布局类型 * @param position * @return */ @Override public int getItemViewType(int position) { if(viewpager != null){ return position > 0 ? TYPE_LISTVIEW : TYPE_VIEWPAGER; }else{ return TYPE_LISTVIEW; } } /** * Item布局总样数 * @return */ @Override public int getViewTypeCount() { return TYPE_COUNT; } public class Holder{ ImageView img; TextView name; TextView theme; TextView place; TextView time; }}
0 0
- 如何在ListView中嵌入ViewPager
- 如何在ScrollView中如何嵌入ListView
- 如何在ScrollView 中如何嵌入ListView
- 如何在ScrollView中如何嵌入ListView
- ViewPager嵌入ListView
- 在listview中嵌入viewpager带来的卡顿问题及解决
- 在ViewPager中添加ListView
- android中ScrollView如何嵌入ListView
- 如何在ViewPager里面加入ListView
- Aandroid在ViewPager中添加ListView
- Aandroid在ViewPager中添加ListView
- Aandroid在ViewPager中添加ListView
- 如何在Form中嵌入Excel
- 如何在网页中嵌入流媒体文件
- 在flex中如何使用嵌入字体
- 在flex中如何使用嵌入字体
- 如何在网页中嵌入播放器
- 如何在Java中嵌入MediaPlayer?
- Android的界面设计规范
- (四)Canvas API方法和属性汇总
- MySQL更改数据库文件的目录
- request.getRealPath()方法
- Android统一风格 —— 主题
- 如何在ListView中嵌入ViewPager
- java快速排序算法
- 我的Git的使用
- 配置jbpm6.1的eclipse开发环境
- 【黑马程序员】Java学习笔记之面向对象高级篇
- Keil建立STM32项目工程
- Spring AOP声明式事务异常回滚
- VS2010的附加依赖项和库怎么永久保存
- OCP-1Z0-051-2015-31题