Перемещение spark.components.Application в панель управления внизу - PullRequest
0 голосов
/ 11 сентября 2011

Как панель управления приложения можно переместить в ее нижнюю часть в Flex 4.5?

В Adobe doc указано только:

По умолчанию класс ApplicationSkin определяетобласть панели управления, отображаемая в верхней части области содержимого контейнера приложения с серым фоном.Создайте пользовательский скин для изменения внешнего вида панели управления по умолчанию.

Итак, я смотрю на spark.skins.spark.ApplicationSkin и есть controlBarGroup (содержит ли онСодержимое ControlBar?), Но я не знаю, как переместить его сверху вниз.

Ответы [ 2 ]

1 голос
/ 11 сентября 2011

Первое, что вам нужно сделать, это создать собственный класс скина. В FlashBuilder (FB) есть возможность создать его автоматически, но по сути это просто класс, как и любой другой.

В FB щелкните правой кнопкой мыши где-нибудь в своем проекте и выберите «Создать> MXML-скин»

enter image description here

Затем заполните форму мастера следующим образом:

enter image description here

В противном случае просто создайте новый файл .mxml и скопируйте / вставьте в него код spark.skins.spark.ApplicationSkin.

Затем в вашем приложении назначьте класс скина, который вы только что создали:

<s:Application ... skinClass="skins.MyApplicationSkin" />

Теперь давайте отредактируем ваш новый класс скинов. Это та часть, которая вас интересует (я вырежу несколько кусочков, чтобы прояснить ее):

<s:Group left="0" right="0" top="0" bottom="0">
    <s:layout>
        <s:VerticalLayout gap="0" horizontalAlign="justify" />
    </s:layout>

    <s:Group id="topGroup" minWidth="0" minHeight="0"
                includeIn="normalWithControlBar, disabledWithControlBar" >

        <!-- some graphic elements here -->

        <s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" ...>
            <s:layout>
                <s:HorizontalLayout ... />
            </s:layout>
        </s:Group>
    </s:Group>

    <s:Group id="contentGroup" width="100%" height="100%" ... />

</s:Group>

Почти там. Теперь все, что нам нужно сделать, это переместить эту 'topGroup' под 'contentGroup'. topGroup содержит некоторую графику + controlBarGroup. 'contentGroup' - это область, в которую будут вставлены все компоненты, которые вы, кроме файла вашего приложения .mxml.

<s:Group left="0" right="0" top="0" bottom="0">
    <s:layout>
        <s:VerticalLayout gap="0" horizontalAlign="justify" />
    </s:layout>

    <s:Group id="contentGroup" width="100%" height="100%" ... />

    <s:Group id="topGroup" minWidth="0" minHeight="0"
                includeIn="normalWithControlBar, disabledWithControlBar" >

        <!-- some graphic elements here -->

        <s:Group id="controlBarGroup" left="0" right="0" top="1" bottom="1" ...>
            <s:layout>
                <s:HorizontalLayout ... />
            </s:layout>
        </s:Group>
    </s:Group>

</s:Group>
0 голосов
/ 11 сентября 2011

Вы можете попробовать переместить группу панели управления под группой содержимого, и она должна работать так, как ожидается, особенно если вы посмотрите на макет родительской группы (вертикальный).Если вы хотите еще больше контролировать его, переопределите метод partAdded.

...