В Android я хочу изменить текст в textView и попросить, чтобы Android пересмотрел views-tree
.
Я пробовал несколько подходов, но не был уверен в разнице между ними.
1) onMeasure(..)
- это событие жизненного цикла представления.
я вижу в коде, что оно в конечном итоге вызывает measure()
для каждого дочернего элемента.
- Таким образом, я могу изменить текстовое содержимоеи вызвать повторное измерение путем вызова в java
super.onMeasure(..)
2) measure()
* <p>
* This is called to find out how big a view should be. The parent
* supplies constraint information in the width and height parameters.
* </p>
- Я могу изменить текстовое содержимое и затем вызвать
super.measure()
но я не понимаю, как представление возвращает свой ответ на how big a view should be
.
3) Чтобы заставить представление рисовать, вызовите invalidate()
Если я вызываю changeтекст и звонок onMeasure()
я не звоню invalidate()
и все же пользовательский интерфейс изменился правильно.
Почему мой код успешно избежал вызова invalidate()
?