ListView优化

3.4.1.listview的界面的优化:
1. android:divider=”@android:color/transparent” listview内条目与条目之间的内容
android:dividerHeight=”5.0dip” listview条目之间的间隙
2. android:listSelector=”@color/transparent” listview点中的颜色变化
3. android:fastScrollEnabled=”true” listview有很多个条目时在listview的右边是否显示快速滑动块,true为显示,false不显示。默认只有当ListView的内容至少为5页时,才会显示快速滑动块。
4. android:scrollbarStyle=”outsideOverlay” 快速滚动条的显示方式设置
android:scrollbars=”none” 不显示快速滚动条
5.需要时,用上header view和footer view。如下拉刷新时可设置显示header view。Header view和footer view 的添加在setadapter之前。
6. android:clipChildren=”false” 子控件是否在padding区域
android:clipToPadding=”false” 控件的绘制区域是否在padding里面
这两个属性设置为false,则可实现listview滚动时在padding的区域也填充内容,实现特定的需求。如:http://www.tuicool.com/articles/32YRJrq
7.快速拖动时候的悬浮提示, 通过注册listview的 onScrollListener(), 使用window manager 显示悬浮提示。如快速拖动手机联系人,屏幕显示A,B,C,D等联系人的首字母信息.
8. 当listview需要显示多种布局时,复写adapter的getItemViewType(int position)方法,在getView()中调用,判断后生成相应的View。可参看http://www.tuicool.com/articles/MBvABz

3.4.2.数据显示的优化:
1. 复用convertView, 减少布局填充器服务填充布局的次数,减少xml->view 操作的次数,节省系统资源。
2. 定义静态的viewholder,做好数据的缓存,储存View对象里面控件的引用,通过view.setTag() view.getTag()给view设置标记和取到要操作的view. 减少遍历view对象树状结构的次数。
3. 对服务器上的图片做本地缓存,如手机的内存卡,sd卡。
4. Listview的分页显示
服务器需要提供接口,一次获取一段的数据.
数据库提供接口,一次查询一段的数据.
5. Listview的延时加载
如果listview里面要显示的有很多的数据,我们不需要一次把所有的数据都获取出来,可以采用分段的方式下载下来;注册listview的 onScrollListener(),发现最后一个可见的条目为listview数据适配器里面的最后的一个条目,则加载更多的内容;
6. Listview的快速拖动:
当listview在滚动状态下,不去加载listview里面真实的图片和内容,而是把一个缩略图加载界面上. 当listview的滚动状态停止的时候才去真正的更新里面的条目的内容. 通过注册listview的 onScrollListener(),在onScrollStateChanged中判断scrollState是OnScrollListener.SCROLL_STATE_IDLE时再去加载真实图片。
3.4.3.优化原则
时间换空间: 内存不足,不能直接获取全部的数据到内存, 那就多花时间,一段一段的获取数据并显示;
时间换时间: 如开机优化, 开机的服务要启动,应用程序要启动加载;
空间换空间: 大数据的交换和存储;
空间换时间: 手机内存缓存,SD卡缓存。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值