在Flex Mobile应用程序中单击ViewNavigator时会触发哪个事件?

时间:2011-08-19 20:12:11

标签: flex flex4 flash-builder flex4.5 flex-mobile

<s:ViewNavigator id="trends" label="Trends" width="100%" height="100%" firstView="views.TrendsView" icon="@Embed('assets/column-chart-icon32.png')"/>
<s:ViewNavigator id="attach" label="Attach" width="100%" height="100%" firstView="views.AttachView" icon="@Embed('assets/paperclip-icon32.png')"/>

现在,我知道如果您点击“趋势”,那么将显示firstView“views.TrendsView”。 现在您进入该视图并再次单击“趋势”(底部导航栏)哪个事件将灵活调度?

3 个答案:

答案 0 :(得分:1)

这可能对您有所帮助: http://opensource.adobe.com/wiki/display/flexsdk/View+and+ViewNavigator

根据此文档,您的类“views.TrendsView”应该在再次单击“trend”时调度ViewNavigatorEvent.VIEW_ACTIVATE类型的事件。

答案 1 :(得分:1)

如果你想在视图导航器上听取事件的话,我发现它们可以起作用:

elementAdd="mainNavigator_elementAddHandler(event)"
elementRemove="mainNavigator_elementAddHandler(event)"

在这种情况下,我的视图导航器称为“mainNavigator”。我也这样做了:

ChangeWatcher.watch(mainNavigator,'length', mainNavigator_lengthChangeHandler, false, true);

但我不知道那是否干净。

答案 2 :(得分:0)

@Davz,    viewActivate只发送一次,即第一次点击“趋势”。进入“趋势”并再次单击后,它将不会触发viewActivate事件,因为该视图已激活。我认为flex不会在活动视图上触发任何事件,即“趋势”选项卡处于活动状态,您再次单击底部导航栏上的“趋势”(在TabViewNavigatorApplication中)