Я хочу убедиться, что покрываю все случаи
Родительский виджет считывает (и, возможно, использует) дочерний размер или ограничения
Дочерний виджет считывает (и, возможно, использует) размер или ограничения родительского элемента
Дочерний виджет считывает (и, возможно, использует) размер или ограничения другого дочернего элемента
Решение, похоже, состоит в том, чтобы ...
Пусть фаза сборки запустится
Тогда размер и ограничения нужного виджетадля извлечения данных из построены
Затем я прерываю регулярную последовательность фаз (чтобы функция Draw Frame не запускалась)
Затем перезапуститефаза сборки с данными, которые у меня сейчас есть
и позволить рамке рисовать
Проблема в том, что я не знаю, как это сделать
Ранее я опубликовал гораздо более конкретный вопрос, связанный с этим, и получил пару ответов, конструктор макетов, пользовательские мульти-чиМакет ld и пользовательский макет с одним дочерним элементом ...
Но это для очень специфических обстоятельств
Компоновщик компоновки создает дерево виджетов, которое может зависеть от размера родительского виджета.Таким образом, он обрабатывает только случай 2
И два других имеют ограничение, что размер родителя не может зависеть от размера ребенка.Так что, похоже, подразумевается, что он обрабатывает только случай 2.
Итак, какие еще есть решения?
Плагин получения прямоугольного кода работает, но не прерывает рисование кадра, поэтому есть кадрstutter https://pub.dartlang.org/packages/rect_getter
Плагин после компоновки, который я еще не пробовал, но похоже, что та же проблема возникает, потому что он говорит, что он запускается после первого кадра https://pub.dartlang.org/packages/after_layout
Любая помощь приветствуется!Я бы не хотел постоянно жить с использованием обходных путей: /