Заставить контейнеры делать компоновку после поворота дочерних элементов? - PullRequest
0 голосов
/ 06 августа 2009

Моя проблема довольно проста: контейнеры Flex выполняют макет на основе непревращенных дочерних элементов, поэтому повернутые дочерние элементы располагаются так, как если бы не было поворота, но затем они поворачиваются вокруг верхнего левого угла этой позиции. Я приложил изображение, чтобы показать, что я имею в виду.

Кто-нибудь знает, как это обойти? Могу ли я обернуть компоненты во что-то? Или мне приходится прибегать к нестандартным компонентам или фиксированным макетам?

1 Ответ

1 голос
/ 06 августа 2009

Если контейнеры не обрабатывают вращательные преобразования в коде макета, то, к сожалению, вы застряли, добавив эту функцию самостоятельно. Чтобы добавить оскорбление к травме, Flex 3 и ниже не очень хорошо разделяет компоновку и логику, поэтому вы обычно получаете компоненты, которые решают очень специфическую проблему, которая могла бы быть лучше решена с помощью отдельного класса компоновки, реализующего интерфейс компоновки. Эти компоненты могут расти довольно быстро и, как правило, также делают хрупкий дизайн компонентов, поскольку происходит слишком много подклассов.

Эта проблема была устранена во Flex 4 (будет выпущена), но я не могу за нее ручаться. Теоретически это хорошая идея, но на практике у меня не было времени углубиться в реализацию Adobe этого дизайна.

Короче говоря: вы, вероятно, облажались и должны реализовать эту функцию самостоятельно. К счастью, это обычно довольно легко взломать. К сожалению, обычно довольно сложно реализовать хорошее нехрупкое решение, так как чаще всего оно требует использования подклассов и глубоких знаний о внутренностях суперкласса, что может требовать или не требовать исправление обезьян .

...