У меня есть библиотека для рисования, и с ней у меня есть пользовательский вид. Когда необходимо выполнить какие-либо обновления, библиотека вызывает метод отображения invalidate()
. И тогда вызывается метод onDraw()
, и все работает нормально.View.invalidate(), кажется, не вызывает View.onDraw()
Однако, когда я добавляю атрибут usesSdkVersion="14"
к моему AndroidManifest.xml file
, это перестает работать. Больше не используется метод моего вида onDraw()
.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ: Кажется, что когда я вызываю invalidate()
в результате нажатия кнопки в моем приложении, просмотр обновляется, как ожидалось. Кроме того, в моей библиотеке есть одна анимация, которая работает правильно. Поэтому, по-видимому, он работает правильно. Но большую часть времени он не перерисовывается. Есть ли какое-либо состояние, в котором может быть пользовательский вид, который заставит ОС пропустить перерисовку после вызова invalidate()
?
Вы все еще называете это из потока пользовательского интерфейса? иначе вы должны использовать postInvalidate(). – Heinrisch
Я попытался изменить invalidate на postInvalidate, чтобы проверить это, и проблема все еще существует. – Rickster
Включено или выключено аппаратное ускорение? –