我的应用程序提供了几个由数据库支持的 ListView。每个都使用一个游标适配器和一个提供程序来连接数据库和 UI。在一种情况下,我使用开箱即用的 SimpleCursorAdapter(使用自定义 ViewBinder);在另一种情况下,我将 SimpleCursorAdapter 子类化。
在跟踪我的应用程序时,我发现每次加载这些 ListView 时,游标适配器都会对列表中的每个项目调用它们的 getView() 和 bindView() 方法两次。为什么会发生这种情况,有什么办法可以避免吗?
最佳答案
如果您将 ListView 的宽度(或高度)设置为 wrap_content,则会导致此问题。将其切换为 Fill_Parent 或 match_parent 将 ListView 的宽度(或高度)设置为 wrap_content 将导致它测量前 3 个项目并将其尺寸基于这些项目。为了测量前 3 个项目,它必须调用 bindView() 来填充它们。一旦测量完成,它将完全填充并在前 3 个和任何后续的上再次调用 bindView()。
关于android - SimpleCursorAdapter 将所有内容绑定(bind)两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14737777/