<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.timageResourcefruit.timageID 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.timage ImageView view.R.. viewHolder. TextView view.R.. view.viewHolder view convertView viewHolder ViewHolder view. 获取ViewHolder viewHolder.timage.timageResourcefruit. viewHolder..fruit. view ViewHolder ImageView fruitimage TextView fruitName 新增了一个内部类ViewHolder,用于对控件的实例进行缓存。 调用的 setTag方法,将ViewHolder对象存储在 中。 当convertView不为空的时候,则调用Veiw的 getTag方法,把ViewHolder重新取出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。