TileGroup:调整大小时的刷新布局

时间:2013-11-08 06:13:20

标签: flex flash-builder mxml

我刚开始使用mxml构建应用程序。

基本上,我正在使用TileGroup构建一个tile列表(其中6个)。当它在纵向视图上初始化时,它看起来很棒(第一行3个,第二行3个)。

但是,当我更改方向时,我希望根据新的宽度和高度重新绘制切片。

从堆栈溢出,我发现我可以收听resize事件。但是,我不知道如何让TileGroup重绘。

最初,我以为我可以将autoLayout用于TileGroup。但是,这并没有成功。我很难找到解决方案(也许我没有使用正确的关键词)。

我可以调用重绘功能吗?

还是有另一种方法让我的瓷砖对方向有所反应吗?

这是我的代码:

<components:View xmlns:fx="http://ns.adobe.com/mxml/2009" 
             xmlns:s="library://ns.adobe.com/flex/spark" xmlns:components="spark.components.*" 
             title="Forex Calculator">
<components:states>
    <s:State name="portrait"/>
    <s:State name="landscape"/>
</components:states>
<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>

<s:TileGroup id="mainGroup" includeIn="portrait, landscape" autoLayout="true">
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xd54f4f"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0x2f977d"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xfffca2"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xfffca2"/>
        </s:fill>
    </s:Rect>
    <s:Rect width="75" height="75">
        <s:fill>
            <s:SolidColor color="0xfffca2"/>
        </s:fill>
    </s:Rect>
</s:TileGroup>   

请指教!谢谢!

贾斯汀

1 个答案:

答案 0 :(得分:0)

基于调整大小的重新布局会自动发生。但是,如果您未提供具有某些特定大小规则的容器(此实例中为TileGroup),则它将应用其默认大小调整行为,以适应其内容。显然,无论你是纵向还是横向状态,内容都不会改变,所以没有任何反应。

我不确定您要做什么,但设置width="100%" height="100%"会在整个屏幕上拉伸TileGroup。即它的大小将根据其父容器的大小而不是其内容来计算。因此,当状态改变时,列/行的数量将改变。