【问题标题】:SimpleCursorAdapter binds everything twiceSimpleCursorAdapter 将所有内容绑定两次
【发布时间】:2013-02-06 20:06:11
【问题描述】:

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

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

【问题讨论】:

  • "需要更多代码"...
  • @Evilunclebill 来自“需要更多金币”(WC3-TFT)

标签: android performance android-layout


【解决方案1】:

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

看到同样的问题Why does Wrap_Content fire BindView more than once

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-21
    • 1970-01-01
    • 2021-10-01
    • 1970-01-01
    • 2012-04-07
    • 1970-01-01
    • 2011-05-22
    相关资源
    最近更新 更多