组忽略底层组件的maxwidth

时间:2016-06-22 14:08:42

标签: flex layout width

在下面的代码中,您可以看到我有2个相同的bordercontainers(bordercontainer1& bordercontainer2),每个都包含一个周围的组(aroundgroup1& surroundinggroup2)。

bordercontainers的最大宽度为250像素,宽度为100%。 基本上,我希望它们占用250像素的空间,但如果可用空间较少,请尽量占用。

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx">
    <s:HGroup id="maingroup" width="100%">
        <s:Group id="surroundinggroup1">
            <s:BorderContainer id="bordercontainer1" height="50" maxWidth="250" width="100%">
                <s:Label text="test"/>
            </s:BorderContainer>        
        </s:Group>
        <s:Group id="surroundinggroup2">
            <s:BorderContainer id="bordercontainer2" height="50" maxWidth="250" width="100%">
                <s:Label text="test"/>
            </s:BorderContainer>        
        </s:Group>
    </s:HGroup>
</s:WindowedApplication>

问题是周围的组似乎忽略了maxwidth并使用了绘制bordercontainer所需的最小宽度,以便包含“test”的标签适合:

enter image description here

我认为将周围组宽度设置为100%可以解决问题,但这会导致周围组占用尽可能多的空间,导致2个边框容器之间出现间隙:

enter image description here

唯一的解决方案似乎是删除周围的组,然后布局就像我想要的那样:

enter image description here

这里的问题是,在实际应用程序中,这些周围组包含一些其他组件和逻辑。删除它们可能会导致其他一些变化。 在保留这些周围群体的同时,没有办法达到预期的结果(图3)吗?

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题,出于某种原因,我认为你并不想要对周围群体进行尺寸限制,但这只是在我脑海中。我将maxWidth和100%移动到了surroudinggroups,Bordercontainer width =&#34; 100%&#34;对你想要的东西也很重要。

IN=43:99:99
F1=`echo $IN | cut -f1 '-d:'`
F2=`echo $IN | cut -f2 '-d:'`
F3=`echo $IN | cut -f3 '-d:'`

F3=$(( F3 + 1 ))
if [ "$F3" -gt 99 ] ; then F3=00 ; F2=$(( F2 + 1 )) ; fi
if [ "$F2" -gt 99 ] ; then F2=00 ; F1=$(( F1 + 1 )) ; fi

OUT="$F1:$F2:$F3"
echo $OUT