优化ListView,提升运行效率

前端之家收集整理的这篇文章主要介绍了优化ListView,提升运行效率前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<table class="java"><tr class="li1">
<td class="ln"><pre class="de1">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54

commondN  选择 自动生成get and set 一.为适配的 FruitAdapter 中的 getView方法每次都将布局重新加载了一遍, 当滚动时,这个机制会成为性能的瓶颈,getView方法中还有一个 convertView参数, 这个参数用于将之前加载好的布局进行缓存,质变之后可以复用。代码 FruitAdapter ArrayAdapterFruit         @Override     getView position, convertView,ViewGroup parent         Fruit fruit getItemposition         view         convertView                 view LayoutInflater.getContext.resourceId,                         view convertView                 ImageView fruitImage ImageView view.R..         fruitImage.fruit.         view         二.通过以上方法进行判断,利用了已有的缓存,但是每次在getView方法中还是会 调用 的 findViewById方法获取一次控件的实例。通过创建一个内部类 ViewHolder, 继续优化。代码 FruitAdapter ArrayAdapterFruit         @Override     getView position,ViewGroup parent         Fruit fruit getItemposition         view         ViewHolder viewHolder         convertView         view LayoutInflater.getContext.resourceId,                 viewHolder ViewHolder                                  viewHolder. ImageView view.R..             viewHolder. TextView view.R..             view.viewHolder                                             view convertView                 viewHolder ViewHolder view.     获取ViewHolder                             viewHolder..fruit.         viewHolder..fruit.           view                         ViewHolder                 ImageView fruitImage             TextView fruitName           新增了一个内部类ViewHolder,用于对控件的实例进行缓存。 调用的 setTag方法,将ViewHolder对象存储在 中。 当convertView不为空的时候,则调用Veiw的 getTag方法,把ViewHolder重新取出。  

猜你在找的程序笔记相关文章