Android开发之ListView详解 以及简单的listView优化
16lz
2021-01-26
ListView列表视图
最常用的控件之一,使用场景例如:微信,手机QQ等等。
android:divider:每个item之间的分割线,可以使用图片或者色值。
android:dividerHeight:高度
使用方式,等同于Spinner:ArrayAdapter,SimpleAdapter,BaseAdapter。
BaseAdapter:
特点:高度自定义item布局,同时逻辑操作更加丰富。
getCount():item的数量
getItem():获取item中的数据
getItemId():获取item的id,通常使用position作为id即可。
getView(position, convertView, parent):获取item的布局。
当一个item出现在屏幕中时(尽管没有完全出现),就会执行getView()方法。
ListView优化:
一:convertView的复用
二:ListView的高度属性需要设置为match_parent,这样保证getView的调用次数与屏幕内item的次数保持一致
三:ViewHolder视图保持者。记录了控件所在位置,防止频繁的findViewById,因此能够避免频发触发GC,节省了内存开销。
最常用的控件之一,使用场景例如:微信,手机QQ等等。
android:divider:每个item之间的分割线,可以使用图片或者色值。
android:dividerHeight:高度
使用方式,等同于Spinner:ArrayAdapter,SimpleAdapter,BaseAdapter。
BaseAdapter:
特点:高度自定义item布局,同时逻辑操作更加丰富。
getCount():item的数量
getItem():获取item中的数据
getItemId():获取item的id,通常使用position作为id即可。
getView(position, convertView, parent):获取item的布局。
当一个item出现在屏幕中时(尽管没有完全出现),就会执行getView()方法。
ListView优化:
一:convertView的复用
二:ListView的高度属性需要设置为match_parent,这样保证getView的调用次数与屏幕内item的次数保持一致
三:ViewHolder视图保持者。记录了控件所在位置,防止频繁的findViewById,因此能够避免频发触发GC,节省了内存开销。
更多相关文章
- Android的ImageView如何maxHeight与maxWidth生效
- Android(安卓)FFmpeg系列——6 Java 获取播放进度
- android中画廊视图Gallery和ImageSwitcher组件的使用
- Android(安卓)Bitmap和Canvas学习笔记
- Android——Bitmap和Canvas
- Android(安卓)MediaProjection截屏与录屏(surfaceview截图)(一)
- Android学习笔记(二)–Android(安卓)View绘制
- Android(安卓)Studio 项目基本结构
- android处理处理触屏事件的流程