每次适配器更改时,ListView是否重新绘制?

时间:2013-12-09 19:08:22

标签: android listview android-listview

我想在自己的应用程序中列出一些SMS ..

我的问题是关于适配器(自动)的步骤

- 当新消息到达时,我将其添加到列表对象(而不是ListView)。 然后我将列表传递给listView的适配器。 为列表中的每个项目运行适配器GetView()方法

-I通知列表视图有关更改。 - listview 重新绘制所有其现有行,然后绘制新行。

我的问题:这种行为(重新绘制和重绘,它意味着每一行将被淹没的时间等于总行数)会影响性能吗?

* 如果问题不明确我说:ListView是否只是为了添加新行而绘制所有Raws? *

2 个答案:

答案 0 :(得分:2)

ListView不会重绘每个项目以添加一个项目。只有在滚动到它时才会绘制它。是的,你必须通知ListView发生了变化。

答案 1 :(得分:1)

我想你想在顶部位置添加项目。所以其他项目的位置和指数都会发生变化。适配器将重绘整个列表(仅显示在屏幕上可见的元素)。

对于性能,您可以使用viewHolder模式。 看到这个链接 [使ListView滚动平滑] [1] http://developer.android.com/training/improving-layouts/smooth-scrolling.html