加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 创业 > C语言 > 正文

优化ListView,提升运行效率

发布时间:2020-12-15 00:35:05 所属栏目:C语言 来源:网络整理
导读: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 commond N ?选择 自动生成
<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..fruit. ? ? ? ? viewHolder..fruit. ? ? ? ? ? view ? ? ? ? ? ? ? ? ? ? ? ? ViewHolder ? ? ? ? ? ? ? ? ImageView fruitImage ? ? ? ? ? ? TextView fruitName ? ? ? ? ? 新增了一个内部类ViewHolder,用于对控件的实例进行缓存。 调用的 setTag方法,将ViewHolder对象存储在 中。 当convertView不为空的时候,则调用Veiw的 getTag方法,把ViewHolder重新取出。 ?(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

<table class="java">

    推荐文章
      热点阅读