2

我的应用程序提供了几个由数据库支持的 ListView。每个都使用游标适配器和提供程序在数据库和 UI 之间进行接口。在一种情况下,我使用 SimpleCursorAdapter 开箱即用(使用自定义 ViewBinder);在另一种情况下,我将 SimpleCursorAdapter 子类化。

在跟踪我的应用程序时,我发现每次加载这些 ListView 时,光标适配器都会对列表中的每个项目调用它们的 getView() 和 bindView() 方法两次。为什么会发生这种情况,有什么办法可以避免吗?

4

1 回答 1

1

如果您将 ListView 的宽度(或高度)设置为 wrap_content,则会导致此问题。将其切换为 Fill_Parent 或 match_parent 将 ListView 的宽度(或高度)设置为 wrap_content 将导致它测量前 3 个项目并将其尺寸基于这些。为了测量前 3 个项目,它必须调用 bindView() 来填充它们。测量完成后,它将完全填充并在前 3 个和任何后续对象上再次调用 bindView()。

看到同样的问题为什么 Wrap_Content 会多次触发 BindView

于 2013-03-05T16:07:17.627 回答