ViewNavigator 组件是由 View 对象集合组成的容器,其中仅最顶部的视图可见且处于活动状态。使用 ViewNavigator 容器控制在手机应用程序的视图之间的导航。ViewNavigatorApplication 容器为整个应用程序自动创建单个 ViewNavigator 容器。
由 View 对象的堆栈控制手机应用程序中的导航。堆栈上的顶部 View 对象定义当前可见视图。ViewNavigator 容器保存堆栈。要更改视图,请将新 View 对象推送至堆栈上,或从堆栈中弹出当前 View 对象。从堆栈返弹出的当前可见 View 对象破坏 View 对象,并将用户返回至堆栈上的前一个视图。
将视图推送到堆栈顶部时,会自动持久保存旧视图的 data 属性。由于当前视图弹出堆栈而重新激活视图时会恢复。新视图通过推送到堆栈而变为活动时,会破坏旧视图的实例。
ViewNavigator 显示可选 ActionBar 控件,其中显示由活动视图定义的上下文信息。活动视图变化时,操作栏会自动更新。
隐藏 MXML 语法
The <s:ViewNavigator> tag inherits all of the tag
attributes of its superclass and adds the following tag attributes:
<s:ViewNavigator
Properties
actionContent="null"
actionLayout="null"
defaultPopTransition="SlideViewTransition"
defaultPushTransition="SlideViewTransition"
firstView="null"
firstViewData="null"
navigationContent="null"
navigationLayout="null"
poppedViewReturnedObject="null"
title=""
titleContent="null"
titleLayout="null"
>
navigationStack
查看示例
样式为常见样式,或与特定主题关联。如果为常见样式,则可以用于任何主题。如果样式与特定主题关联,则只有应用程序使用该主题时才能使用该样式。
actionContent:Array
该属性覆盖 ActionBar 和 ViewNavigatorApplication 组件中的 actionContent 属性。
用于定义操作(用户可以在视图中执行相应的操作)的组件。这些组件显示在控件的操作区域中(使用 actionGroup 外观部件)。
actionGroup 外观部件的位置和外观由 ActionBarSkin 类确定。默认 ActionBarSkin 类将 actionGroup 定义为显示在 ActionBar 标题显示区域的右侧。
创建自定义 ActionBarSkin 外观类以更改 actionGroup 外观部件的默认位置和外观。
默认值为 null。
public function get actionContent():Array public function set actionContent(value:Array):void
actionLayout:LayoutBase
用于定义操作(用户可以在视图中执行相应的操作)的组件。这些组件显示在控件的操作区域中(使用 actionGroup 外观部件)。
actionGroup 外观部件的位置和外观由 ActionBarSkin 类确定。默认 ActionBarSkin 类将 actionGroup 定义为显示在 ActionBar 标题显示区域的右侧。
创建自定义 ActionBarSkin 外观类以更改 actionGroup 外观部件的默认位置和外观。
默认值为 null。
public function get actionLayout():LayoutBase public function set actionLayout(value:LayoutBase):void
activeView:View [只读] [覆盖]
在视图过渡期间,该属性引用导航器过渡到的视图。
导航器的当前活动视图。一次仅一个视图可处于活动状态。
此属性可用作数据绑定的源。修改此属性后,将调度 viewChangeComplete 事件。
override public function get activeView():View
context:Object [只读]
描述创建当前视图所在的上下文的字符串。该属性指定为 context 参数(传递至 ViewNavigator.pushView() 方法)的值。
默认值为 null。
public function get context():Object
defaultPopTransition:spark.transitions:ViewTransitionBase
指定弹出导航操作的默认视图过渡。
默认值为 SlideViewTransition。
public function get defaultPopTransition():spark.transitions:ViewTransitionBase public function set defaultPopTransition(value:spark.transitions:ViewTransitionBase):void
defaultPushTransition:spark.transitions:ViewTransitionBase
指定推送导航操作的默认视图过渡。
默认值为 SlideViewTransition。
public function get defaultPushTransition():spark.transitions:ViewTransitionBase public function set defaultPushTransition(value:spark.transitions:ViewTransitionBase):void
firstView:Class
应用程序中的每个视图对应于在 ActionScript 或 MXML 文件中定义的 View 容器类。该属性指定用于初始化堆栈的第一个视图的视图。该属性必须引用扩展 View 容器的类。
通过使用 firstViewData 属性指定传递至第一个视图的任意数据。
默认值为 null。
public function get firstView():Class public function set firstView(value:Class):void
firstViewData:Object
导航器初始化时传递至第一个视图的 data 属性的对象。通过使用 firstView 属性指定第一个视图。
默认值为 null。
public function get firstViewData():Object public function set firstViewData(value:Object):void
length:int [只读]
返回导航器正在管理的视图数。
此属性可用作数据绑定的源。修改此属性后,将调度 lengthChanged 事件。
public function get length():int
navigationContent:Array
该属性覆盖 ActionBar 和 ViewNavigatorApplication 组件中的 navigationContent 属性。
为用户定义导航的组件。这些组件显示在控件的导航区域中,位于 navigationGroup 外观部件中。
navigationGroup 外观部件的位置和外观由 ActionBarSkin 类确定。默认 ActionBarSkin 类将 navigationGroup 定义为显示在 ActionBar 的 titleGroup 区域的左侧。
创建自定义外观 ActionBarSkin 外观类以更改 navigationGroup 外观部件的默认位置和外观。
默认值为 null。
public function get navigationContent():Array public function set navigationContent(value:Array):void
navigationLayout:LayoutBase
定义在 navigationGroup 外观部件中包含的组件布局。
默认值为 null。
public function get navigationLayout():LayoutBase public function set navigationLayout(value:LayoutBase):void
poppedViewReturnedObject:ViewReturnObject [只读]
包含从导航堆栈弹出的或由其它视图替换的最后一个视图返回的对象。为了返回值,从堆栈弹出的视图覆盖其 createReturnObject() 方法。
仅当导航器正在切换视图以响应弹出或替换导航操作时,该对象才可用。新视图接收 add 事件时该对象保证有效,但视图接收 viewActivate 事件后该对象受到破坏。
默认值为 null。
public function get poppedViewReturnedObject():ViewReturnObject
title:String
该属性覆盖 ActionBar 和 ViewNavigatorApplication 组件中的 title 属性。
在标题区域中显示的标题或题注。
使用 titleContent 属性定义在标题区域中显示的组件。如果您为 titleContent 属性指定值,则 ActionBar 外观会忽略 title 属性。
默认值为 ""。
此属性可用作数据绑定的源。修改此属性后,将调度 propertyChange 事件。
public function get title():String public function set title(value:String):void
titleContent:Array
该属性覆盖 ActionBar 和 ViewNavigatorApplication 组件中的 titleContent 属性。
在控件的标题区域中显示的组件。这些组件显示在 ActionBar 控件的 titleGroup 外观部件中。
titleGroup 外观部件的位置和外观由 ActionBarSkin 类确定。默认 ActionBarSkin 类将 titleGroup 定义为显示在 ActionBar 的中间(利用 navigationGroup 和 actionGroup 外观部件之间的剩余空间)。
如果 titleContent 为 null,将显示 titleDisplay 外观部件(如果存在),而非 titleGroup 外观部件。
创建自定义 ActionBarSkin 外观类以更改 titleGroup 外观部件的默认位置和外观。
默认值为 null。
public function get titleContent():Array public function set titleContent(value:Array):void
titleLayout:LayoutBase
定义 titleGroup 和 titleDisplay 外观部件的布局。
如果 titleContent 属性为 null,将显示 titleDisplay 外观部件,而非 titleGroup 外观部件。通过使用由 titleLayout 属性指定的布局类的 paddingLeft 和 paddingRight 属性,titleDisplay 外观部件被定位在 ActionBar 控件的中间。
默认值为 null。
public function get titleLayout():LayoutBase public function set titleLayout(value:LayoutBase):void
override public function backKeyUpHandler():void
弹出导航器中的上一个视图,以响应后退键。在导航事件期间,ViewNavigator 仅允许调用一次此方法。对此方法的所有后续调用都将被忽略,直到当前视图过渡完成。
当按下后退键时,ViewNavigatorApplication 会自动调用此方法。
protected function createActionBarHideEffect():IEffect
创建隐藏 ActionBar 控件时播放的效果。产生的效果负责同时对 ActionBar 和当前显示在导航器内容区域的视图设置动画。
IEffect — 隐藏 ActionBar 控件时播放的效果。
protected function createActionBarShowEffect():IEffect
创建 ActionBar 控件出现时播放的效果。产生的效果负责同时对 ActionBar 和当前显示在导航器内容区域的视图设置动画。
IEffect — 出现 ActionBar 控件时播放的效果。
public function hideActionBar(animate:Boolean = true):void
隐藏操作栏。
:Boolean (default = true) — 指示隐藏效果是否要在操作栏隐藏时播放。
public function popAll(transition:spark.transitions:ViewTransitionBase = null):void
从导航器堆栈中删除所有视图。该方法更改空白屏幕的显示。
:spark.transitions:ViewTransitionBase (default = null) — 切换视图时播放的视图过渡。
public function popToFirstView(transition:spark.transitions:ViewTransitionBase = null):void
除底部视图外,从导航堆栈中删除所有视图。底部视图是第一个推送到堆栈上的视图。
:spark.transitions:ViewTransitionBase (default = null) — 切换视图时播放的视图过渡。
public function popView(transition:spark.transitions:ViewTransitionBase = null):void
从导航堆栈弹出当前视图。当前视图由堆栈上的顶部视图表示。堆栈上的前一个视图成为当前视图。
:spark.transitions:ViewTransitionBase (default = null) — 切换视图时播放的视图过渡。
public function pushView(viewClass:Class, data:Object = null, context:Object = null, transition:spark.transitions:ViewTransitionBase = null):void
将新视图推送到导航堆栈的顶部。推送到堆栈上的视图成为当前视图。
:Class — 用来创建视图的类。该参数必须引用扩展 View 容器的类。
:Object (default = null) — 要传递给视图的数据对象。将该参数写入新视图的 data 属性。
:Object (default = null) — 写入 ViewNavigator.context 属性中的任意对象。创建新视图后,该视图可以引用此属性并根据其值执行操作。例如,视图可能会根据 context 值来以不同的方式显示数据。
:spark.transitions:ViewTransitionBase (default = null) — 切换视图时播放的视图过渡。
public function replaceView(viewClass:Class, data:Object = null, context:Object = null, transition:spark.transitions:ViewTransitionBase = null):void
将导航堆栈的顶部视图替换为新视图。替换堆栈上当前视图的视图成为当前视图。
:Class — 用来创建替换视图的类。该参数必须引用扩展 View 容器的类。
:Object (default = null) — 要传递给视图的数据对象。将该参数写入新视图的 data 属性。
:Object (default = null) — 用来描述推送操作上下文的任意对象。创建新视图时,它可以引用该属性。
:spark.transitions:ViewTransitionBase (default = null) — 切换视图时播放的视图过渡。
public function showActionBar(animate:Boolean = true):void
显示操作栏。
:Boolean (default = true) — 指示操作栏出现时是否播放显示效果。
<?xml version="1.0" encoding="utf-8"?>
<s:ViewNavigatorApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
firstView="views.ViewNavigatorExampleHomeView">
<fx:Script>
<![CDATA[
// Call ViewNavigator.popToFirstView() when the user clicks the Home button.
protected function button1_clickHandler(event:MouseEvent):void {
navigator.popToFirstView();
}
]]>
</fx:Script>
<s:navigationContent>
<s:Button icon="@Embed(source='assets/Home.png')"
click="button1_clickHandler(event);"/>
</s:navigationContent>
</s:ViewNavigatorApplication>
<?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="Home View">
<s:layout>
<s:VerticalLayout paddingTop="10"/>
</s:layout>
<fx:Script>
<![CDATA[
// Call ViewNavigator.pushView() to navigate to the Search view.
protected function button1_clickHandler(event:MouseEvent):void {
navigator.pushView(ViewNavigatorExampleSearch);
}
]]>
</fx:Script>
<s:Label text="Home View"/>
<s:Button label="Search"
click="button1_clickHandler(event);"/>
</s:View>
<?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">
<s:layout>
<s:VerticalLayout paddingTop="10"
paddingLeft="10" paddingRight="10"/>
</s:layout>
<fx:Script>
<![CDATA[
// Handle the search.
protected function button1_clickHandler(event:MouseEvent):void {
// Perform a search.
}
]]>
</fx:Script>
<!-- Override the title to insert a TextInput control. -->
<s:titleContent>
<s:TextInput text="Enter search text ..."
textAlpha="0.5"
width="250"/>
</s:titleContent>
<!-- Override the action area to insert a Search button. -->
<s:actionContent>
<s:Button label="Search" click="button1_clickHandler(event);"/>
</s:actionContent>
<s:Label text="Search View"/>
<s:TextArea text="Search results appear here ..."
height="75%"/>
</s:View>
显示 MXML 语法






