Оптимальный способ обновления определенных строк в ListView при использовании MatrixCursor
У меня есть ListView
с обычаем CursorAdapter
кормить из MatrixCursor
, Каждый ряд в ListView
имеет изображение, которое загружается асинхронно, и когда загрузка изображения завершится, я бы хотел дать сигнал адаптеру перерисовать соответствующую строку. Я делаю нечто подобное уже с данными из ContentProvider
куда я звоню getContentResolver().notifyChange
перерисовать конкретную строку. Для MatrixCursor
, Я могу позвонить notifyDataSetChanged
, но это не оптимально, так как он обновляет каждый ряд.
Поэтому мой вопрос: как лучше всего перерисовать определенные строки в ListView
из временного источника? Есть ли способ настроить "временный" ContentUri
s, или какой-то способ запросить, чтобы адаптер только делал недействительными определенные строки?
1 ответ
Я смог добиться того же эффекта, используя setNotificationUri
на MatrixCursor
с произвольным URI, затем с помощью getContentResolver.notifyChange()
сигнализировать о перерисовке. Хотя это работает для меня, мне было бы любопытно узнать, является ли это рекомендуемым способом запроса перерисовки определенных элементов.