сброс ListView после изменения данных адаптера - PullRequest
0 голосов
/ 21 ноября 2010

У меня есть представление списка, которое может отображать элементы на основе внутреннего состояния (в нем есть элементы и «просмотренные» элементы).мне нужно иметь возможность переключаться между двумя состояниями, я делаю это с помощью простой кнопки, которая изменяет состояние адаптера, а затем адаптер называется notifyDatasetChanged ().Мои данные обновляются, однако я столкнулся с двумя проблемами:

  1. , если в предыдущем режиме список был частично прокручен, он оставался в этом состоянии после того, как я изменил набор данных (если я наполовинувниз, я буду на полпути вниз и в новом наборе данных, это не то поведение, которое я хочу, но я не могу найти способ прокрутки списка вручную до позиции 0. какие-либо идеи? (setSelected не совсемрешение, так как я не хочу никакого выбора, я хочу остаться в сенсорном режиме)
  2. В моем списке просмотра каждого элемента есть изображение, которое извлекается из сети, так как оно доставляется с помощью моего сетевого менеджера и яотправлять запрос изображения ТОЛЬКО если я впервые на этом экране ИЛИ если состояние прокрутки находится в режиме ожидания, я не хочу начинать загрузку изображений из метода getView, так как если я переверну экран, он может загрузить много ненужных изображенийОднако при вызове notifyDatasetChanged () методы прослушивателя прокрутки не вызываются. Я решил это с помощью notifyDatasetInvalidated дажехотя мои данные не пусты, есть ли лучший способ решить эту проблему?

1 Ответ

0 голосов
/ 21 ноября 2010

относительно # 1, это моя ошибка, я не читал всю документацию, по-видимому, если я в настоящее время нахожусь в сенсорном режиме, выбор не будет сделан, поэтому работа выполняется setSelectedPosition ().

Относительно # 2, я все еще не уверен, что notifyDatasetInvalidated - это решение, позволяющее вызывать методы onScroll.

...