我刚刚开始了一个新项目,并希望在我的某些屏幕上使用 SplitViewNavigator 布局,因为它非常适合我将要做的事情。
然而,并不是所有的屏幕都应该使用这种布局(homeview 就是其中之一)。所以我首先将侧视图的可见性设置为 false。
<s:SplitViewNavigator includeIn="tablet" width="100%" height="100%">
<s:layout.landscape>
<s:HorizontalLayout />
</s:layout.landscape>
<s:layout.portrait>
<s:VerticalLayout />
</s:layout.portrait>
<s:ViewNavigator width.landscape="35%" height.landscape="100%"
width.portrait="100%" height.portrait="30%"
firstView="views.TestView" visible="false"/>
<s:ViewNavigator width="100%" height="100%" height.portrait="100%"
firstView="views.OnSiteFormHomeView" />
</s:SplitViewNavigator>
我知道如何访问 SpitViewNavigator 和各个 ViewNavigator。所以我在我的主页视图中做了以下操作(作为测试),但似乎什么也没发生。(另一个导航器保持全屏)。我尝试将代码附加到初始化和创建完成事件。
// Create a reference to the SplitViewNavigator.
var splitNavigator:SplitViewNavigator = navigator.parentNavigator as SplitViewNavigator;
// Create a reference to the ViewNavigator for the Detail frame.
var sideNavigator:ViewNavigator = splitNavigator.getViewNavigatorAt(0) as ViewNavigator;
var detailNavigator:ViewNavigator = splitNavigator.getViewNavigatorAt(1) as ViewNavigator;
sideNavigator.visible = true;
我认为我需要以某种方式使其重绘屏幕/导航器。我尝试在 splitviewnavigator 以及各个导航器上调用初始化函数,但似乎没有什么区别。