知道如何设置布局吗?

时间:2009-12-07 15:26:44

标签: flex list layout

我想用两个按钮控制列表左/右转一个元素。

但我对如何布局这些组件感到困惑。

我使用“ requestedColumnCount =”6“”来设置列表宽度,所以在设计模型中

我只知道这个列表可以显示6个元素,但我不知道它的宽度。

所以我用“HGroup”来设置布局,主要代码是这样的

<s:HGroup x="214"
          y="216">
    <s:Group>
        <s:layout>
            <s:VerticalLayout />
        </s:layout>
        <s:Button label="←"
                  click="button1_clickHandler(event)"/>
    </s:Group>
    <s:Group>
        <component:SmoothScrollingList dataProvider="{myProvider}"
                                       itemRenderer="myitemdrender.FriendPageItemRender"
                                       id="friendPageList"
                                       mouseDown="friendPageList_mouseDownHandler(event)">
            <component:layout>
                <s:HorizontalLayout requestedColumnCount="6"
                                    useVirtualLayout="true"/>
            </component:layout>
        </component:SmoothScrollingList>
    </s:Group>
    <s:Group>
        <s:Button label="→"
                  click="button2_clickHandler(event)"/>
    </s:Group>
</s:HGroup>

你可以看到我使用一个HGroup和三个组来确定组件的位置。

差不多完成,但我仍然遇到有关如何在

设置这两个按钮的问题

中间位置?

我尝试使用

        <s:layout>
            <s:VerticalLayout horizontalAlign="center"/>
        </s:layout>

在第一组布局中,但似乎无法正常工作。

我的另一个问题是:

这是一个使用这么多组和hgroup确定位置的好方法吗?在那里

还有其他好办法吗?

非常感谢。

2 个答案:

答案 0 :(得分:0)

在这些情况下你应该使用属性,以便更多地清理代码;那么这些附加属性所属的地方也是可见的。例如,对于第一组,只需写:

<s:Group layout="VerticalLayout">
    <s:Button label="←" click="button1_clickHandler(event)"/>
</s:Group>

但是在你的情况下,对于其中一个不同的元素使用额外的Group元素没有多大意义。

<s:HGroup x="214" y="216" verticalAlign="middle">
    <s:Button label="←" click="button1_clickHandler(event)"/>
    <component:SmoothScrollingList
            id="friendPageList" dataProvider="{myProvider}"
            itemRenderer="myitemdrender.FriendPageItemRender"
            mouseDown="friendPageList_mouseDownHandler(event)">
        <component:layout>
            <s:HorizontalLayout requestedColumnCount="6" useVirtualLayout="true"/>
        </component:layout>
    </component:SmoothScrollingList>
    <s:Button label="→" click="button2_clickHandler(event)"/>
</s:HGroup>

答案 1 :(得分:0)

对不起,也许我的描述不是很清楚。

我的黄金可能是某些Ui喜欢这个(http://i46.tinypic.com/2nbbxc4.jpg)。

但是在degin模型中,我不知道列表的剂量是多少。

按钮是列表高度的30%。我尝试使用一个包含所有3个组件的HGroup。

似乎无法正常工作。

<s:HGroup x="214" y="216" id="parentGroup">
    <s:Group id="childOneGroup">
        <s:Button label="←" top="{parentGroup.height*0.3}"/>
    </s:Group>
    <s:Group>
        <component:SmoothScrollingList dataProvider="{myProvider}"
                    itemRenderer="myitemdrender.FriendPageItemRender"
                    id="friendPageList">
            <component:layout>
                <s:HorizontalLayout requestedColumnCount="6" useVirtualLayout="true"/>
            </component:layout>
        </component:SmoothScrollingList>
    </s:Group>
    <s:Group>
        <s:Button label="→" top="30"/>
    </s:Group>
</s:HGroup>

但如果我使用三个组(每个compont属于一个)并更改th按钮“top”

值为{parentGroup.height * 0.3},它正在工作。