请教Android ListView问题
发布时间: 2015-05-15 浏览次数: 23
标题:请教Android ListView问题
发表人:Android_Coding发表时间:2015-05-15
详细内容:最近团队在开发一款Android应用,当中用到了ListView和RadioButton以及RadioGroup,ListView当中的item比较多,而且是放的RadioGroup,遇到的问题是当我选中第一个RadioButton,我发现屏幕下方的另外一个RadioButton也被选中了,求各位帮帮忙,求解决方案!

姓名:hucj(Android讲师)

首先,我上课讲过ListView的工作原理,那么,我们先回顾一下:

 1.ListView针对List中每个item,要求adapter给我一个视图(getView)

 2.一个新的视图被返回并显示

如果我们有上亿个item要显示怎么办?为每个项目创建一个新视图?NO!这不可能,Android实际上为你缓存了视图。

Android中有个叫做Recycler(反复循环器)的构件,下图是它的工作原理:

点击查看原图

1.如果你有10亿个项目(item),其中只有可见的项目存在内存中,其他的在Recycler中;

2.ListView先请求一个type1视图(getView),然后请求其他可见的项目。conVertView在getView中时null的;

3.当item1滚出屏幕,并且一个新的项目从屏幕地段上来时,ListView再请求一个type1视图。convertView此时不是空值了,它的值是item1.你只需要设定新的数据返回convertView,不必重新创建一个视图。这样直接使用convertView从而减少了很不不必要view的创建。

现在是不是明白了。

姓名:Android_Coding

明白了,谢谢老师!

我要发表跟帖

请登录发表跟帖