Изменение размера панели, используя его в качестве точки привязки - PullRequest
0 голосов
/ 11 июля 2011

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

Может кто-нибудь объяснить более четко, как этого добиться?.

Заранее спасибо.

1 Ответ

1 голос
/ 11 июля 2011

Как предполагает Джонатан, родительский контейнер вашей Panel, вероятно, использует не BasicLayout, а некоторую жидкую компоновку (например, VerticalLayout).При использовании жидкостного макета вы не можете использовать атрибуты абсолютного положения, такие как «x», «y», «horizontalCenter», «verticalCenter», «left», «right», «top» или «bottom».Они просто будут игнорироваться, что, конечно, имеет смысл, потому что объекты должны располагаться относительно друг друга.

В любом случае, это работает отлично:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark">

    <s:states>
        <s:State name="small" />
        <s:State name="big" />
    </s:states>

    <s:transitions>
        <s:Transition>
            <s:Resize target="{panel}" />
        </s:Transition>
    </s:transitions>

    <s:Panel id="panel" horizontalCenter="0" verticalCenter="0"
             width.small="200" height.small="100"
             width.big="400" height.big="200">

        <s:Button label="toggle size" 
                  click="currentState = currentState == 'small' ? 'big' : 'small'" />
    </s:Panel>

</s:Application>
...