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 ...
随机推荐
- jQuery中$(function()与(function($)等的区别详细讲解
(function($) {-})(jQuery); 这里实际上是匿名函数,如下: function(arg){-} 这就定义了一个匿名函数,参数为arg 而调用函数时,是在函数后面写上括号和实参的, ...
- Programming In Scala笔记-第九章、控制抽象
本章主要讲解在Scala中如何使用函数值来自定义新的控制结构,并且介绍Curring和By-name参数的概念. 一.减少重复代码 1.重复代码的场景描述 前面定义的函数,将实现某功能的代码封装到一起 ...
- GDAL创建图像提示Driver xxx does not support XXX creation option的原因
经常在群里有人问,创建图像的时候为什么老是提示下面的信息. CPLError: Driver GTiff does not support DCAP_CREATE creation option Wa ...
- How to work with my desktop and laptop
introduction Two years ago, I got a laptop Lenovo Y500, I am still using it now. Recently, I bought ...
- SceneKit一个3D场景角色的代码重构
SuperSpaceMan3D是一个以SceneKit为基础的小游戏项目,作者展示了用SceneKit开发3D游戏的强大威力.不过在实际运行时会发现有一些小bug,这里我们依次尝试将其修复 首先,当s ...
- Sublime text 添加lua
tools ->build system->new build system... 输入: { "cmd": ["C:\\lua\\lua53.exe&quo ...
- 剑指Offer——搜狐畅游笔试题+知识点总结
剑指Offer--搜狐畅游笔试题+知识点总结 情景回顾 时间:2016.9.24 10:00-12:00 地点:山东省网络环境智能计算技术重点实验室 事件:搜狐畅游笔试 注意事项:要有大局观,该舍 ...
- EJB通过ANT提高EJB应用的开发效率、开发具有本地接口的无状态bean、开发有状态bean
把jboss集成进eclipse 关闭Jboss控制台按Ctrl+c,在MyEclipse→Servers→Jboss里面可以配置JBoss. 通过ANT提高EJB应用的开发效率 在HelloWorl ...
- x264源代码简单分析:宏块分析(Analysis)部分-帧内宏块(Intra)
===================================================== H.264源代码分析文章列表: [编码 - x264] x264源代码简单分析:概述 x26 ...
- 重载Cocos2D生存期的方法
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交 ...