一、ListView高度问题
问题:
我们在之前写item布局的时候给定了item高度,但是仔细观察发现并没有生效,这里我们换一种方式,match_parent,可以发现也没有生效,不管怎么设置都默认wrap_content,那当我们怎样才能给这个item设置高度呢?
方法一:
在item里面再嵌套一个布局
方法二:
无需嵌套(更换方法)
二、ListView缺点
问题:手机的屏幕是固定的,向下滚动listview时,超过屏幕的item能否被回收,循环利用呢?我们可以做一个实验
1.观察刚加载出来的内存大小
2.向下滚动看内存的变化
3.得出结论:
item不会被回收,内存会一直增加,这样显然是不行的
三、ListView优化
- 看起来很简单那该怎么实现呢
- 首先先查看超出屏幕的item地址的变化
convertView 表示系统中有没有可以回收的item,如果有那么会返回内存地址,如果没有返回空
那么我们就需要把初始状态设置成可以回收的,这样就可以循环利用。
即只需要在convertView 为空值的时候生成item条目就可以了,而当convertView 不等于空时,就不需要new一个条目了,由此来节省内存