Как работает прокрутка в Android ViewView? - PullRequest
2 голосов
/ 01 июня 2010

У меня есть андроид-приложение со списком в активности. Список просмотра имеет, если я так его называю, три состояния данных.

  1. данные не загружены из inet -> виден только один фиктивный элемент, говорящий о загрузке данных;
  2. данные загружены и показаны в списке;
  3. по одному элементу списка щелкают, и теперь отображается дополнительная информация для этого элемента списка (поэтому он увеличивается по высоте).

При каждом изменении состояния (1 -> 2, 2 -> 3) я вызываю notifyDataSetChanged () в этом ListAdapater. Это приводит к прокрутке списка вниз до последнего элемента. Это уродливо в первом переходе и еще более уродливо во втором, потому что элемент списка, по которому щелкнули, теперь не в фокусе.

Как я вижу, это происходит с google g1 с android 1.6. Htc touch с тем же sdk работает как хотелось бы (попробую разобраться с еще несколькими устройствами).

Чтобы избежать этого, я попытался прочитать getScrollY () и установить это значение обратно. но это возвращает 0. Причину этого возвращаемого значения я уже нашел в stackoverflow в других вопросах.

Кто-нибудь еще видел эту проблему? Почему просмотр списка прокручивается до последнего элемента? Было упомянуто, что listview отслеживает положение прокрутки. но, похоже, что это не так в моем случае.

Или, может быть, я вызываю неправильный метод обновления? Является ли notifyDataSetChanged правильным?

1 Ответ

0 голосов
/ 01 июня 2010

Я верю, что вы хотите:

listview.setTranscriptMode(ListView.TRANSCRIPT_MODE_DISABLED);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...