Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题

在使用ListView时,在Adapter里面使用convertView会提高ListView的性能,提升100%?但今天发现在listView同时加载不同的View的同时会导致ListView最底下有一块空白,可能是恰巧吧,导致这样的原因可能是加载了几个不同的View,而他们的高度不同,数量也不同,系统无法准确计算ListView的总高度。

在 BaseAdapter里面提供了两个回调函数来指定有多少种布局,指定position对应的是哪一个布局。

		@Override
		public int getViewTypeCount() {
			return 2;
		}
		@Override
		public int getItemViewType(int position) {
			if (getSectionForPosition(position)==0){
				return TYPE_1;
			}else {
				return TYPE_2;
			}
		}

简单重写一下就解决了。

Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题

时间: 2024-10-09 20:51:17

Android 解决ListView在使用多个布局的同时使用convertView进行缓存时导致ListView下面有空白的问题的相关文章

Android开发:View的几种布局及实践

引言 View的布局显示方式有下面几种:线性布局(Linear Layout).相对布局(Relative Layout).表格布局(Table Layout).网格视图(Grid View).标签布局(Tab Layout).列表视图(List View).绝对布局(AbsoluteLayout).本文虽然是介绍View的布局方式,但不仅仅是这样,其中涉及了很多小的知识点,绝对能给你带来Android大餐! 本文的主要内容就是分别介绍以上视图的七种布局显示方式效果及实现,大纲如下: 1.Vie

Android 解决图片大量下载:软引用必须懂4点

Android 解决图片大量下载:软引用必须懂4点 可能对于Android开发者来说,软引用这个词有的会不是很熟悉,软引用在Java开发中用的比较多,但是,在Android开发中引用软引用,会给我们解决很多难题. AD: 1.对象的强.软.弱和虚引用 为了能更加灵活控制对象的生命周期,需要知道对象引用的4中级别,由高到低依次为 :强引用.软引用.弱引用和虚引用 备注: 这四种的区别: ⑴强引用(StrongReference) 强引用是使用最普遍的引用.如果一个对象具有强引用,那垃圾回收器绝不会

Listview实现不同类型的布局

打开各种客户端发现 Listview的布局多种多样,在我以前的认知中listview不是只能放一种item布局嘛,我就震惊了,现在我自己的项目上要用到这种方式那么就去做下 原理是listview 的adapter中 有这两个方法 // 返回当前布局的样式type @Override public int getItemViewType(int position) { return listDatas.get(position).type; } // 返回你有多少个不同的类型的数量 @Overri

【Android 初学】3、控件布局初步

什么是控件布局 所谓的控件布局方法,就是指控制控件在Activity当中的位置.大小.颜色以及其他控件样式属性的方法. 控件的布局,在android中,有两种方法: 1.使用布局文件完成控件布局(相对简单) 2.在Java代码中完成控件布局(动态布局.更灵活.也相对复杂) 布局方法分类 1.Linear Layout(最容易掌握) 线性布局:可以纵向布局.也可以横向布局. 2.Ralative Layout(最常用使用.熟悉WEB开发的人就很熟悉) 3.ListView 4.Grid View

[android] 解决DatePickerDialog和TimePickerDialog控件取消按钮问题

一. 问题提出 在Android程序中,我们通常需要使用DatePicker来设置日期,TimePicker来设置时间.其基本步骤是: 1.先定义DatePicker和TimePicker布局 2.然后通过Calendar类获得系统时间 3.接着通过init方法将日期传递给DatePicker初始化日期控件 4.在响应点击事件中可以通过DatePicker的getYear().getDayOfMonth().getMonth()函数获取具体日期 同时可以在OnDateChangedListene

Android之根布局动态加载子布局时边距设置无效问题

Android大部分的控件都会有padding和layout_margin两个属性,一般来说它们的区别是: padding:控件中的内容离控件边缘的距离. margin:  控件离它的父控件边缘的距离. 今天做了一个由根布局动态加载子布局的实验,结果发现子布局中的这两个属性可以按预期的效果显示,但是给根布局设置的padding并没有对被加载的子布局产生效果. 代码如下: 根布局文件名为activity_main.xml,其xml文件定义的内容为: <LinearLayout xmlns:andr

布局与控件(八)-ListView知多少(下)ChoiceMode详解

9.4 ListView的Choice Mode ListView本身带有单选和多选功能,也就是说在单选模式下,它能够记住当前选中的唯一的列表项:在多选模式下,它能够记住目前选取的所有的列表项. 这种选择模式共有4种CHOICE_MODE_NONE CHOICE_MODE_SINGLE CHOICE_MODE_MULTIPLE CHOICE_MODE_MULTIPLE_MODAL. 使用setChoiceMode()函数,就可以设置ListView的选择模式. ListView lv = (Li

【转】 Pro Android学习笔记(十九):用户界面和控制(7):ListView

目录(?)[-] 点击List的item触发 添加其他控件以及获取item数据 ListView控件以垂直布局方式显示子view.系统的android.app.ListActivity已经实现了一个只含有一个ListView的Activity,并通过setListAdapter()方法来管理adapter.我们可以通过扩展ListActivity来实现. 我们要在整个屏幕上显示ListView,我们直接继承使用ListActivity,不需要在定义自己的layout XML文件,我们在上一学习中

解决CSS3多列样式column-width布局时内容被截断、错乱

一.问题 使用CSS3的column-width: auto | <length>属性时,出现排列的内容被截断,出现错位的现象. 二.原因 需要为图片容器设置高度,不然会崩掉. 三.解决方法 给需要分列的容器加上height:100%;overflow: auto;. 解决CSS3多列样式column-width布局时内容被截断.错乱