场景如下:我有一个简单的 ListView 显示 twitter 提要。我有一个从 sqlite 获取推文的 CursorAdapter。当我在光标上调用 requery() 时,我希望将获取已添加到数据库中的新推文。这一切都很好,发生这种情况后,新项目甚至在 ListView 中可见。
问题是滚动位置似乎是根据项目位置偏移量保存的。因此,假设我的 ListView 中的第一个可见位置是 4。当我重新查询并将 2 个新项目添加到列表顶部时,ListView 将第一个可见项目滚动位置保持为 4,但是由于列表中有两个新项目,我现在在位置 4 看到了与刷新之前不同的项目。此图说明了之前和之后:
注意之前,Tweet D是第一个可见项目,之后,Tweet B现在成为第一个可见项目。
我的问题是,如何在调用重新查询时根据光标位置保持相同的滚动位置,以便在此示例中,Tweet D仍然是重新查询后的第一个可见项目?