什么时候系统调用适配器的getview函数

问题描述:

我想知道什么时候getView函数会被调用,case我想刷新listview,并且不知道该怎么做。例如,listView中显示了7个项目,现在,我想将其更改为7个其他日期和图像。什么时候系统调用适配器的getview函数

如果您需要以编程方式滚动视图,您可以使用smoothScrollToPosition但它仅支持API 8及更高版本。

+0

thx为您的答案,我确实使用smoothscrollToPosition方法,但结果是,它显示更多的新项目,但只有3多,并且,虽然图像改变。不能得到更多,我可以模式项目的背景,因为我不知道如何获得项目视图,getChildAt(位置)会有帮助吗?它会显示我nullpointer异常... thx很多 – zyunchen

+0

我发现它确实有效,thx很多 – zyunchen

刷新列表视图调用

Adapter.NotifyDataSetChanged() 

编辑

一般ListView的列表项将有同样的高度,如果你可以计算高度,并呼吁

ListView.scrollBy(x, y); 

即使是简单的,你可以致电

ListView.smoothScrollToPosition(position); 

,如果你知道位置

列表视图应该呈现你的适配器添加新项目(前提是你调用notifydatasetchanged())

+0

thx对于如此快速的回答,但问题是,NotifyDataSetChanged()在适配器中的数据更改时很有用?但在我的情况下,适配器中的数据不会改变,我在其中放置了50个项目,而listview只能显示10个项目,现在我想显示接下来的10个项目,我该怎么办? thx再次。 – zyunchen

+0

smoothScrollToPosition(位置)可能会添加三个项目..我不知道为什么,这让我觉得它只显示它首先创建的视图。 – zyunchen

+0

我认为,adapterdataset没有变化,原因我已经添加了所有的数据,但listView只能显示10项数据,我不想显示接下来的10项,notifydatasetchanged()会有帮助吗?我尝试过但徒劳无功。 – zyunchen