Flex条件语句:根据标签文本设置V组高度

xqkwcwgp  于 2022-09-21  发布在  Apache
关注(0)|答案(1)|浏览(109)

在我的Flex代码中,我有一个标签和一个VGroup容器。我想根据标签文本设置V组的高度。

以下是简化的代码-

<s:Group height="100%" width="100%" >      
    <s:Group id="titleBar" width="100%" depth="50" >
        <s:Label id="titleDisplay" maxDisplayedLines="1" 
                     color="{ColorMap.WHITE}" 
                     color.bubble="{ColorMap.MAINTEXT}"
                     color.inactiveGroup="{ColorMap.MAINTEXT}"
                     left="10" right="35" top="1" bottom="0" minHeight="30"
                     verticalAlign="middle" textAlign="left" 
                     styleName="overlayTitle"/>
    </s:Group>

    <s:VGroup  width="100%" height="{(titleDisplay.text == "Create Pool")? "80%" : "100%"}" top="30">
        <s:Group id="contentArea" width="100%" height="100%">
        ....
        </s:Group>
    </s:VGroup>

</s:Group>

因此,如果标签的文本是“Create Pool”,我想将高度设置为80%,否则设置为100%。但我从VGroup行收到以下编译错误-

Element type "s:VGroup" must be followed by either attribute specifications, ">" or "/>".

如何解决这个问题?我遵循以下链接中的代码-How i write inline conditional statement in Flex with two expressions(case)?

请告诉我在这种情况下如何写条件句。

谢谢

ubby3x7f

ubby3x7f1#

我用一个定制函数init()解决了这个问题。

<s:SparkSkin xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark"
             creationComplete="init()">

private function init():void
{ 
    if (titleDisplay.text == "Create Pool")
        {
            contentVGroup.height = contentVGroup.height * .8;
        }
}

这是完美的工作。

谢谢

相关问题