Как обновить одну строку ListView с анимацией? - PullRequest
2 голосов
/ 25 августа 2011

У меня есть ListView с несколькими строками, и пользователь может запускать асинхронные задачи, нажимая кнопки в этих строках.Когда задача запускается, соответствующая строка должна отображать некоторое представление «Загрузка», а когда задача заканчивается, строка должна отображать результаты этой асинхронной задачи.

Функционально, все работает в настоящее время.Но я бы хотел переключить состояние строки с помощью анимации.Прямо сейчас я всегда вызываю .onDataSetChanged () на адаптере ListView, когда необходимо изменить состояние строки (например, Загрузка -> Некоторое содержимое).Но это перезагружает / перерисовывает весь ListView.

Я хочу изменить только одну строку, и я хотел бы сделать это с хорошей анимацией.AFAIK, вы всегда должны вызывать .onDataSetChanged () на адаптере всякий раз, когда изменяются данные, стоящие за ListView, или же вы получаете исключение.

Итак, возможно ли каким-то образом загрузить новые данные в строку ListView,и представить его с анимацией (которая влияет только на измененную строку)?

Спасибо

1 Ответ

3 голосов
/ 25 августа 2011

Ну, 1 способ сделать это - выбрать дочерний вид и добавить анимацию к этому виду. И когда анимация будет завершена, вы можете обновить значения для представления. Что-то вроде getListView.getChildAt (индекс) .startAnimation (Anim);

И добавьте слушатель анимации в 'anim', чтобы вы могли обновлять значения после окончания анимации.

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