addOnLayoutChangeListener против addOnGlobalLayoutListener против записи (Runnable r)

ПРОБЛЕМА: Предположим, у нас есть простой случай: у нас естьПосмотреть и мы должны показать некоторые данные об этом представлении. Мы используем статический методshowData (Просмотр представления) сделать это. Я хочу знать точный момент, когда измеряется вид, и я могу получить доступGetWidth () GetHeight () и будьте уверены, что это окончательная ширина и высота моего взгляда.

ЧТО Я ЗНАЮ: (не уверен, что я на 100% прав):

Я знаю 3 разных подхода к этому

view.addOnLayoutChangeListener - мы знаем, когда изменился макет, мы можем получить высоту и ширинуview.getViewTreeObserver (). addOnGlobalLayoutListener - для моего случая почти то же самое, но мы получим информацию позже. Потому что layoutChange выдает пузыри от дочерних к корню, а globalLayout от корневых к дочерним (верно?).view.post (Runnable r) - работает, но я не знаю, почему runnable публикуется в потоке пользовательского интерфейса после выполнения просмотра.

ВОПРОСКаков наилучший подход, чтобы узнать, что представление измеряется? и почему?

Ответы на вопрос(1)

Ваш ответ на вопрос