Обновление только части View без использования invalidate(Rect)

В моем текущем приложении я использую invalidate(Rect) для обновления части моего текущего представления, но начиная с API 28 этот метод устарел.
Итак, мои вопросы:

1.Есть ли другой способ обновить только часть представления?
2.Каковы последствия использования устаревшего метода?


person titor    schedule 04.10.2018    source источник


Ответы (1)


Согласно документации Android, просто вызовите метод invalidate(), так как область перерисовки вычисляется внутри.

Из просмотра документов This method was deprecated in API level 28. The switch to hardware accelerated rendering in API 14 reduced the importance of the dirty rectangle. In API 21 the given rectangle is ignored entirely in favor of an internally-calculated area instead. Because of this, clients are encouraged to just call invalidate().

Устаревшие методы могут быть удалены в будущем, и когда это произойдет, ваше приложение может не скомпилироваться. Так что лучше их не использовать :)

person vishnus    schedule 04.10.2018
comment
но всякий раз, когда я вызываю недействительный(), все мое представление перерисовывается. Мое понимание недействительного() заключается в том, что оно делает недействительным все представление и перерисовывает его. Я ошибаюсь здесь? Благодарность - person titor; 04.10.2018