当前位置: 首页 > 图灵资讯 > 技术篇> listView优化技巧分享

listView优化技巧分享

来源:图灵教育
时间:2023-03-30 17:42:22

listView作为安卓开发中一个非常重要的控制器,开发Android项目它起着不可忽视的作用。然而,在实践中,我们可能会遇到各种需要解决的问题本文将与朋友们分享listview优化处理listview优化优化技巧

ListView 该控制器可以使用四种不同的视图来显示项目。通过这个控制器,项目可以组成一个带有或没有列标头的列,并显示相关的图标和文本。因此几乎每个页面都可以用到listView。adapter是listview和数据源之间的中间人。当每个数据进入可见区域时,adaptergetview()将被调用并返回代表特定数据的视图。触摸滚动时,频繁调用。支持数百个数据。然而,listview也非常复杂,优化工作并不像预期的那么简单需要结合实际情况进行相应的处理优化操作。

1.利用Listview自身的缓存机制,他将缓存条目中的一个条目item。当Listview的第一个屏幕显示完成后,将会出现一个缓存条目,实际上是Baseadapter中的public。 View getView(int position, View convertView, ViewGroup parent)。

2.减少findviewbyid()的次数,findviewbyid是一个相对耗能的操作,因为这个操作每次都需要在布局中找到文件。将item中的控件包装成javabean,当item条目加载时找到相应的控件。

3.利用时间换取时间,比如启动优化,先启动一些重要的程序,然后在启动系统后启动其他程序。

4.利用空间换取时间,先将要获得的数据加载到内存中,然后直接从内存中获取数据。

5.不要在你的getview()中写太多的逻辑代码。我们可以把这些代码放在其他地方。

6.当你创建了很多对象。GC会经常运行。所以不要在getview()方法中创建很多对象。最好的优化是不要在viewholder之外创建任何对象。假设你的标志“GC has freed some memory”如果频繁出现,你的程序肯定有问题。

检查一下:

a) item布局的层次是否太深

b) getView()方法中是否有大量的对象

c) Listview的布局属性

7.假设你的Listview必须显示从互联网上下载的图片。当Listview滑动时,我们不应该输入图片,这将使Listview卡住,因此我们必须在监听器中监控Listview的状态。假设滑动时停止输入图片,假设没有滑动,则开始输入图片。

8.scrollingCache: 本质上,drawingcache是drawing cache,你可以让View在cache中保存自己的drawing(保存为bitmap),这样下次再显示View的时候就不用重画了,而是从cache中取出。在默认情况下,drawing 禁用cahce。因为它消耗了太多的内存,但它确实比重画更光滑。

而在在Listview中,ScrollingCache默认打开,我们可以手动关闭。

9.我们应该尽量减少item的布局深度,因为当滑动Listview时,这次会直接导致测量和绘制,所以会浪费很多时间。因此,我们应该删除一些不必要的布局嵌套关系,以降低item的布局深度。

10.大家应该都很熟悉ViewHolder,但是不要小看这个ViewHolder,它可以大大提高我们ListView的性能。

其实这些只是一些如果你连listview优化的基本操作都不满意,那么你的listview就有问题,有很大的提升潜力和提升优化空间。希望朋友们能学以致用,以后用listview的时候,能够运用适当的优化技巧,充分发挥listview的最大性能。