Задать вопрос

Как отследить готовность ListView в андроиде?

Вроде, простенькая задачка, а правильного ответа найти пока не могу.


Есть ListView с адаптером к базе. В некоторый момент этот адаптер запускает новый запрос и заполняет список элементами. После того, как это сделано, мне нужно перемотать список к заранее известной позиции. Проблема в том, что пока список пустой, перемотка не работает. А никаких событий типа «список заполнен» я не нашел. Пока сделал небольшой хак: перед обновлением адаптера выставляю флаг «нужно перемотать», а в setViewValue проверяю его и если нужно вызываю setSelection, флаг сбрасываю. Вроде, работает, но как-то очень уж неаккуратно выглядит.


Нужна помощь зала: как лучше реализовать это дело?
  • Вопрос задан
  • 2486 просмотров
Подписаться 4 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
WNeZRoS
@WNeZRoS
У ArrayAdapter есть метод setNotifyOnChange (notifyDataSetChanged), посмотрите его, может поможет.
Ответ написан
Kalobok
@Kalobok Автор вопроса
Да, я про это думал уже. Тут вот какая засада: скорее всего, ListView сам обновляется по этому же событию. И я не уверен, гарантируется ли определенный порядок вызова обработчиков. Боюсь получить трудноуловимые глюки, когда иногда первым срабатывает ListView и все работает, а иногда мой обработчик, а ListView в это время еще не заполнен.

Но попробовать, наверное, стоит.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы