简体   繁体   English

如何在火花列表控件中导航?

[英]how to navigate in spark list control?

I'm building a mobile app, using spark list control. 我正在使用火花列表控件构建一个移动应用程序。 When user tap on a list item, i want it to navigate to that correspondence page 当用户点击列表项时,我希望它导航到该对应页面

<s:List id="list" width="100%" height="100%" labelField=" label">
<s:dataProvider>
<s:ArrayList>
<fx:Object label="Page One" />
<fx:Object label="Page Two" />
<fx:Object label="Page Three" />
<fx:Object label="Page Four" />
</s:ArrayList>
</s:dataProvider>
</s:List>

how do i code it so that when user tap on item label="Page One" it will navigate to PageOneView.mxml and if it tap on "Page Two" it will go to PageTwoView.mxml and so on. 我该如何编码,以便当用户点击项目标签=“ Page One”时,它将导航到PageOneView.mxml;如果在“ Page Two”上进行点击,则将转到PageTwoView.mxml,依此类推。 thanks 谢谢

The List should dispatch a change event. 该列表应调度一个更改事件。 In that change event handler you can push the new view onto the view stack: 在该更改事件处理程序中,您可以将新视图推入视图堆栈:

if(list.selectedIndex == 0){
 navigator.pushView(viewOne);
} else if (list.selectedIndex == 1){
 navigator.pushView(viewtwo);
} else if 
etc...

I like the switch statement here as you can default to an action, 我喜欢这里的switch语句,因为您可以默认为一个动作,

<?xml version="1.0" encoding="utf-8"?>
<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
        xmlns:s="library://ns.adobe.com/flex/spark"
        title="HomeView">
    <fx:Script>
        <![CDATA[
            import spark.events.IndexChangeEvent;

            protected function list_changeHandler(event:IndexChangeEvent):void
            {
                switch(list.selectedItem.label)
                {
                    case "Page One":
                    {
                        navigator.pushView(pageOne);
                        break;
                    }
                    case "Page Two":
                    {
                        navigator.pushView(pageTwo);
                        break;
                    }                   
                    case "Page Three":
                    {
                        navigator.pushView(pageThree);
                        break;
                    }                   
                    case "Page Four":
                    {
                        navigator.pushView(pageFour);
                        break;
                    }                       
                    default:
                    {
                        navigator.pushView(pageOne);
                        break;
                    }
                }
            }

        ]]>
    </fx:Script>
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <s:List id="list" width="100%" height="100%" change="list_changeHandler(event)"
            labelField="label">
        <s:dataProvider>
            <s:ArrayList>
                <fx:Object label="Page One"/>
                <fx:Object label="Page Two"/>
                <fx:Object label="Page Three"/>
                <fx:Object label="Page Four"/>
            </s:ArrayList>
        </s:dataProvider>
    </s:List>
</s:View>

Just a different way, suits my logic, created in Flash Builder 4.6. 符合我的逻辑的另一种方法是在Flash Builder 4.6中创建。

Jacko 杰克

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM