站长手册

您现在的位置是:首页 > Android面试题 > 正文

Android面试题

ListView 优化

ghjk2020-07-07Android面试题41
工作原理:ListView针对List中每个item,要求adapter“给我一个视图”(getView)。一个新的视图被返回并显示如果我们有上亿个项目要显示怎么办?为每个项目

工作原理 :


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,不必重新创建一个视图。

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~