【发布时间】:2011-10-28 15:49:32
【问题描述】:
我正在处理ListView。我想知道何时调用 getView()。设置适配器后是否调用它?一旦getView() 方法完成执行,是否会调用“设置适配器”旁边的行?
请帮助我知道getView() 完成执行后哪一行被执行。
这对我很有帮助。
提前致谢, 毗湿奴
【问题讨论】:
标签: android android-layout android-listview
我正在处理ListView。我想知道何时调用 getView()。设置适配器后是否调用它?一旦getView() 方法完成执行,是否会调用“设置适配器”旁边的行?
请帮助我知道getView() 完成执行后哪一行被执行。
这对我很有帮助。
提前致谢, 毗湿奴
【问题讨论】:
标签: android android-layout android-listview
getView() 为您传递给适配器的列表中的每个项目调用。
设置适配器时调用它。当getView() 完成时,调用setAdapter(myAdapter) 之后的下一行。
为了调试getView(),您必须在其上切换断点,因为您无法从setAdapter(myAdapter) 进入getView()。
getView() 在notifyDataSetChanged() 之后和滚动时也会被调用。
【讨论】:
更清楚地说,每当屏幕上显示新项目时,都会调用 getView(),以显示项目的计数。这意味着,如果您有 100 万个项目,但其中 15 个适合屏幕,则 getView 会被调用 15 次。每当您向上/向下滚动并出现新项目时,都会调用 getView() 来获取新项目。你也应该了解回收机制。它为每个项目类型保存一个模板项目布局,并将此视图作为 convertView 参数发送到 getView() 方法,因此您可以使用它来防止布局膨胀。
【讨论】:
getView(),即使项目不适合屏幕。怎么办?