measure () против onMeasured () против invalidate () - PullRequest
0 голосов
/ 17 сентября 2018

В 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()?

...