将spark.components.Application的ControlBar移动到底部

时间:2011-09-10 20:48:49

标签: flex flex4 flex4.5 skin

如何将应用程序的ControlBar移动到Flex 4.5的底部?

Adobe doc仅表示:

  

默认情况下,ApplicationSkin类将控制栏区域定义为   出现在Application容器的内容区域的顶部   有灰色背景。创建自定义外观以更改默认外观   控制栏的外观。

所以我查看spark.skins.spark.ApplicationSkin并且有一个controlBarGroup(它是否包含ControlBar内容?),但我不知道如何将其从顶部移动到底部。

2 个答案:

答案 0 :(得分:1)

您要做的第一件事是创建自定义皮肤类。在FlashBuilder(FB)中,有一个选项可以自动创建一个,但实际上它只是一个类似于任何其他的类。

在FB中,右键单击项目中的某个位置,然后选择“新建> MXML Skin'

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>

答案 1 :(得分:0)

您可以尝试移动内容组下的控制栏组,它应该按预期运行,尤其是当您查看父组的布局(垂直)时。 如果您想对其进行更多控制,请覆盖partAdded方法。