android ListView加载不同布局
今天来跟大家讨论下同一个ListView如何加载不同的布局。
老规矩,先来看效果图。
主要步骤如下
- 1.增加Type。
- 2.重写getViewTypeCount方法。
3.重写getItemViewType方法。
4.重写getView方法。
1.增加Type
我们这里只有2种type;故
private final int TYPE_01 = 0;
private final int TYPE_02 = 1;
2.重写getViewTypeCount方法。因为只有2个,所以这里直接返回2了。
@Override
public int getViewTypeCount() {
return 2;
}
3.重写getItemViewType方法。
这里是根据不同的pos来判断布局。
@Override
public int getItemViewType(int position) {
if(position==0) return TYPE_01;
else
return TYPE_02;
}
4.重写getView
跟普通的getView一样,只不过多了一个switch的过程
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
ViewHolder viewHolder=null;
int type = getItemViewType(i);
if(view == null){
switch (type){
case TYPE_01:
view = mInflater.inflate(R.layout.item_main_top,null);
final Switch mSwitch = (Switch) view.findViewById(R.id.switch_list_main);
}
} else {
//close the LocationService
break;
case TYPE_02:
view = mInflater.inflate(R.layout.item_main,null);
viewHolder = new ViewHolder();
viewHolder.mTextView = (TextView) view.findViewById(R.id.textView_item_main);
view.setTag(viewHolder);
break;
}
}else{
switch (type){
case TYPE_02:
viewHolder = (ViewHolder) view.getTag();
break;
}
}
switch(type) {
case TYPE_02:
viewHolder.mTextView.setText(mStringArr[i-1]);
break;
}
return view;
}
这样便可对ListView加载不同Type的布局。
android ListView加载不同布局的更多相关文章
- Android ListView加载更多
先看效果: ListView的footer布局: <?xml version="1.0" encoding="utf-8"?> <Relati ...
- android: 动态加载碎片布局的技巧
虽然动态添加碎片的功能很强大,可以解决很多实际开发中的问题,但是它毕竟只是在 一个布局文件中进行一些添加和替换操作.如果程序能够根据设备的分辨率或屏幕大小在运 行时来决定加载哪个布局,那我们可发挥的空 ...
- 【转】Android ListView加载不同的item布局
原创教程,转载请保留出处:http://www.eoeandroid.com/thread-72369-1-1.html 最近有需求需要在listView中载入不同的listItem布局,开始 ...
- android listview 加载图片错乱(错位)
写道 今天晚上一个朋友介绍我看了一篇文章,也是解决android中listview在加载图片错位的问题,看了之后,感觉写的很好,自己也遇到这个问题,但是又不知道从何下手,看到这篇文章后,我的问题 ...
- android listview 加载遇到的问题
http://blog.csdn.net/l_serein/article/details/7706338 转载: 描述一下场景: 菜单栏上有若干分类,点击每一个分类,ListView下分根据分类显示 ...
- android之 listview加载性能优化ViewHolder
在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候, ...
- Android动态加载ListView中的Item
我这周上网看到动态增加listview的每一项item的布局,今天抽空自己写了一个,方便自己日后使用,这个效果还是很不错的,用到了Adapter的notifyDataSetChanged()方法,当点 ...
- Android如何在初始化的时候获取加载的布局的宽高
在自定义ListView中,需要将下拉刷新的View在初始化的时候设置padding隐藏起来,这时就要在初始化的时候获得要加载的布局View的高度. private View headView; he ...
- Android动态加载布局之LayoutInflater【转】
万分感谢大佬:https://www.jianshu.com/p/6a235ba5ee17 深入了解View<一>之Android LayoutInfalter原理分析 下文为:Layou ...
随机推荐
- PHP学习(4)——数据类型
PHP 支持 8 种原始数据类型. 四种标量类型:(标量类型即为基本类型) boolean(布尔型) integer(整型) float(浮点型,也称作 double) (由于历史原因,float也叫 ...
- 剑指Offer——如何做好自我介绍(英文版)
剑指Offer--如何做好自我介绍(英文版) Good morning ladies and gentlemen, my name is Sun Huaqiang, my hometown loc ...
- Android support library支持包常用控件介绍(一)
谷歌官方推出Material Design 设计理念已经有段时间了,为支持更方便的实现Material Design设计效果,官方给出了Android support design library 支 ...
- hexo常用命令
Hexo 约有二十个命令,但普通用户经常使用的只有下列几个: hexo s hexo s是hexo server的缩写,命令效果一致:启动本地服务器,用于预览主题.默认地址: http://local ...
- 理解性能的奥秘——应用程序中慢,SSMS中快(1)——简介
本文属于<理解性能的奥秘--应用程序中慢,SSMS中快>系列 在工作中发现有不少类似的现象,有幸看到国外大牛写的一篇文章,由于已经完善得不能再添油加醋,所以决定直接翻译,原文出处:http ...
- Android Multimedia框架总结(六)C++中MediaPlayer的C/S架构
转载请把头部出处链接和尾部二维码一起转载,本文出自: http://blog.csdn.net/hejjunlin/article/details/52435789 前面几节中,都是通过java层调用 ...
- 【Android 系统开发】使用 Source InSight 阅读 Android 源码
1. 安装 Source Insight (1) Source Insight 相关资源 安装相关资源 : -- 下载地址 : http://www.sourceinsight.com/down35. ...
- iOS开发之自己封装的提示框(警告框)样式BHAlertView
最近需要使用到提示框(警告框)进行信息的展示和提醒,所以进行了一个类的封装,想用Swift调用此OC文件,但是发现有些困难,所以暂时先把OC代码进行展示,随后再好好研究一下在Swift中的使用. 对于 ...
- Android透明动画
Android透明动画 核心方法 public void startAnimation(Animation animation) 执行动画,参数可以是各种动画的对象,Animation的多态,也可以是 ...
- Android简易实战教程--第十话《模仿腾讯手机助手小火箭发射详解》
之前对系统自带的土司的源码做了简要分析,见博客:点击打开链接 这一篇给一个小案例,自定义土司,模拟腾讯卫士的小火箭发射.如果想要迅速看懂代码,建议先去看一下上篇介绍点击打开链接 首先,定义一个服务,在 ...