Вот сценарий: у меня есть простой ListView, отображающий ленту твиттера. У меня есть CursorAdapter, который извлекает твиты из sqlite. Когда я вызываю requery() для своего курсора, я ожидаю, что будут получены новые твиты, которые с тех пор были добавлены в базу данных. Все это прекрасно работает, и после этого новые элементы даже видны в ListView.
Проблема заключается в том, что положение прокрутки кажется сохраненным на основе смещения позиции элемента. Итак, скажем, первая видимая позиция в моем ListView равна 4. Когда я запрашиваю и 2 новых элемента добавляются в верхнюю часть списка, ListView сохраняет позицию прокрутки первого видимого элемента как 4, однако, поскольку в списке есть два новых элемента , теперь я вижу другой элемент в позиции 4, чем до обновления. Это изображение иллюстрирует до и после:
Обратите внимание, что раньше Tweet D был первым видимым элементом, а затем Tweet B теперь становится первым видимым элементом.
Мой вопрос: как мне сохранить ту же позицию прокрутки в зависимости от положения курсора при вызове запроса, чтобы в этом примере Tweet D по-прежнему был первым видимым элементом после повторного запроса?