如何将应用程序的ControlBar移动到Flex 4.5的底部?
Adobe doc仅表示:
默认情况下,ApplicationSkin类将控制栏区域定义为 出现在Application容器的内容区域的顶部 有灰色背景。创建自定义外观以更改默认外观 控制栏的外观。
所以我查看spark.skins.spark.ApplicationSkin并且有一个controlBarGroup(它是否包含ControlBar内容?),但我不知道如何将其从顶部移动到底部。
答案 0 :(得分:1)
您要做的第一件事是创建自定义皮肤类。在FlashBuilder(FB)中,有一个选项可以自动创建一个,但实际上它只是一个类似于任何其他的类。
在FB中,右键单击项目中的某个位置,然后选择“新建> MXML Skin'
然后按如下方式填写向导表单:
否则只需创建一个新的.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
方法。