ListView工作原理


工作原理 :
ListView 针对 List 中每个 item ,要求 adapter “ 给我一个视图 ” (getView) 。
一个新的视图被返回并显示
如果我们有上亿个项目要显示怎么办?为每个项目创建一个新视图? NO! 这不可能!
实际上 Android 为你缓存了视图。
Android 中有个叫做 Recycler 的构件,下图是他的工作原理:
如果你有 10 亿个项目 (item) ,其中只有可见的项目存在内存中,其他的在 Recycler 中。
1. ListView 先请求一个 type1 视图 (getView) 然后请求其他可见的项目。 convertView 在 getView 中是空 (null) 的 。
2. 当 item1 滚出屏幕,并且一个新的项目从屏幕低端上来时, ListView 再请求一个 type1 视图。convertView 此时不是空值了,它的值是 item1 。你只需设定新的数据然后返回 convertView,不必重新创建一个视图。

猜你喜欢

转载自luke-feng.iteye.com/blog/2234127