我正在开发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>
所以,基于上面的例子,我想点击“设置”列表项并获取我的设置视图,然后当我“弹出”设置视图时,我将返回菜单,如果我点击“分享图片“列表项,然后我得到特定的视图,等等。
我并不是真的要求任何人在这里为我编写代码,但是甚至可能会指出我可能尚未找到的在线示例的正确方向。
提前感谢您的任何考虑
答案 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);
}