Как я могу получить уведомление о завершении макета? Есть что-то вроде onLayoutFinished()
, что я могу реализовать или переопределить где-нибудь?Слушайте изменения макета в Android
От View Javadoc:
Макет представляет собой процесс, два прохода: а мера проход и передача макета. Проходной измерительный проход реализован в измерении (int, int) и является обходным деревом сверху вниз . Каждый вид толкает спецификации размеров вниз Дерево во время рекурсии. На конце измерения конец каждого измерения сохранил свои измерения. Второй проход проходит в макете (int, int, int, int), а также сверху вниз. Во время этого прохода каждый родитель имеет , ответственный за размещение всех своих детей , используя размеры, рассчитанные в .
Что бы я хотел, это выполнить некоторую логику после завершения «второго прохода». В частности, я хочу внести некоторые изменения в представление, а затем внести изменения в другое представление, зависящее от кадра (положение и размер) первого представления.
Я попытался переопределить onLayout(), но все не так, как я ожидал. Поскольку мне казалось, что я борюсь с тем, как платформа делает что-то, я, наконец, решил рассчитать результаты прохода макета на первом представлении и запросить изменения в макете второго представления на основе этого. Представления затем изменяются вместе во время одного и того же макета. – hpique