measure, measureInWindow выдают валидные результаты только если юзать setTimeout, иначе все нули. Но это такой себе способ
Да, они немного по разному работают и означают разное. onLayout - пассивный триггер, показывает желаемые размеры элемента как их yoga рассчитала, соотвественно чаще всего срабатывает раньше всех остальных, даже когда элемент её не отрисовался, т.е. после цикла лэйаута в yoga measure и measureInWindow - это активный запрос, он асинхронный и идет не в layout thread, а напрямую в ui thread. Возвращает реальные размеры/позицию нативного элемента. Соотвественно чтоб он отработал элемент уже должен быть отрисован (встроен в иерархию нативных вьюх) Я лично measure использовал ровно один раз в жизни в модуле для скрытия клавиатуры при клике по пустому месту. https://gist.github.com/vovkasm/f10e1f1c24e355ab242aabc98ba07fe0
Обсуждают сегодня