2

我正在使用带有简单对齐的 flex 4 GUI,但不知道为什么。

我有 button1、button2 和一个文本字段。我想将它们水平对齐,并将文本垂直居中。对于以下代码,我看到以下输出。

_______   ______
|bt1   | |bt2   |   text1
|______| |______|     

我的问题是;1)为什么我在 btn 1 verticalCenter="10" 和 btn2 verticalCenter="-10" 上发送的属性仍然对齐?我不应该看到一个在上升,一个在下降吗?2 ) 为什么我的 text1 顶部对齐,即使我将它设置为 verticalCenter=0,我在组中尝试过或不尝试过。

多谢你们

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955"
    minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:Group minWidth="100">
        <s:layout>
            <s:HorizontalLayout/>
        </s:layout>
        <s:Button label="myButton" click="" horizontalCenter="0"
            verticalCenter="10"/>
        <s:Button label="myButton" click="" verticalCenter="-10"/>
        <s:Group verticalCenter="0" horizontalCenter="0">
            <s:Label text="hello" color="#FFFF" verticalCenter="0"
                textAlign="center" />
        </s:Group>

    </s:Group>
</s:Application>
4

2 回答 2

2

由于这是一个常见问题,因此可能有助于其他人理解为什么会发生这种情况。

当您使用您在“布局对象”上设置的一个HorizontalLayoutVerticalLayout某些属性时,不会使用。发生这种情况是因为这些属性在垂直/水平布局中实际上不起作用或没有意义。

垂直/水平布局忽略的布局属性:

  • xy坐标
  • horizontalCenterverticalCenter
  • top, bottom, left,right约束

上述属性将适用于默认BasicLayout类。

正如@Mahesh Parate 的回答所示,垂直/水平布局确实允许使用horizontalAlignandverticalAlign属性使内容居中。

于 2012-11-20T18:30:16.867 回答
1

下面的代码可能对您有所帮助: - 在 Horizo​​ntalLayout 中添加 verticalAlign="middle" 这将解决您的问题。

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955"
               minHeight="600">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[

            protected function onClickHandler(event:MouseEvent):void
            {
                // TODO Auto-generated method stub

            }

        ]]>
    </fx:Script>
    <s:Group minWidth="100" >
        <s:layout>
            <s:HorizontalLayout verticalAlign="middle"/>
        </s:layout>
        <s:Button label="myButton" click="onClickHandler(event)" horizontalCenter="0"
                  verticalCenter="10"/>
        <s:Button label="myButton" click="onClickHandler(event)" verticalCenter="-10"/>
        <s:Group verticalCenter="0" horizontalCenter="0">
            <s:Label text="hello" color="#FFFF" verticalCenter="0"
                     textAlign="center" />
        </s:Group>

    </s:Group>
</s:Application>
于 2012-11-20T18:17:06.443 回答