Flex 4.6使用列表项推送特定视图?

时间:2013-06-13 16:46:21

标签: flex list view flash-builder

我正在开发Flex 4.6 Mobile项目,并尝试使用列表从已设置的菜单视图中导航视图。

我正在寻找Adobe的教程,但大多数都涉及更改为相同的视图,只是根据您单击的列表项更改数据。我实际上要做的是,根据您单击的列表项,您将获得一个不相关的视图,每个列表项完全不同的视图。另外,我是否采取了错误的方式?我知道有许多不同的方法来导航视图,包括按钮,标签等。但这是已被要求的东西。我当前列表的示例:

    <s:List id="toolsList" x="10" y="284" width="255" height="197" borderVisible="false"
        color="black" downColor="#00764C" fontSize="16" fontWeight="bold"
        skinClass="view.skins.ListSkin" verticalScrollPolicy="off">
    <s:itemRenderer>
        <fx:Component>  
            <renderers:StyledIconItemRenderer labelField="label" iconField="icon"/>
        </fx:Component>
    </s:itemRenderer>       
    <s:ArrayCollection>
        <fx:Object label="Settings" icon="@Embed('resources/arrow.png')"/>
        <fx:Object label="Fault Current Search" icon="@Embed('resources/arrow.png')"/>
        <fx:Object label="Share Picture" icon="@Embed('resources/arrow.png')"/>
        <fx:Object label="System Info" icon="@Embed('resources/arrow.png')"/>
    </s:ArrayCollection>    
</s:List>

所以,基于上面的例子,我想点击“设置”列表项并获取我的设置视图,然后当我“弹出”设置视图时,我将返回菜单,如果我点击“分享图片“列表项,然后我得到特定的视图,等等。

我并不是真的要求任何人在这里为我编写代码,但是甚至可能会指出我可能尚未找到的在线示例的正确方向。

提前感谢您的任何考虑

1 个答案:

答案 0 :(得分:1)

如果您在ArrayCollection中的每个项目上存储一些关于它应该导航到哪个视图的数据,那么您可以为读取此数据的列表编写更改事件处理程序,并将推送相应的视图。

例如,添加每个项目应该转到的视图的完全限定类名:

<s:ArrayCollection>
    <fx:Object label="Settings" icon="@Embed('resources/arrow.png')" viewClass="com.whatever.SettingsClass/>
    ...
</s:ArrayCollection>

然后在列表中添加一个点击处理程序:

<s:List id="theList" change="onSelectedItemChange()" />

private function onSelectedItemChange():void
{
    var className:String = theList.selectedItem.viewClass;
    var viewClass:Class = getDefinitionByName(className) as Class;
    ViewNavigatorApplication.navigator.pushView(viewClass);
}