0

我刚刚开始了一个新项目,并希望在我的某些屏幕上使用 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 以及各个导航器上调用初始化函数,但似乎没有什么区别。

4

1 回答 1

1

回答我自己的问题。我发现它在视图(弹出/推送)之间对我有用,所以我可以执行以下操作(从单个视图屏幕):

sideNavigator.visible = true;
sideNavigator.pushView(SideViewHere);
detailNavigator.pushView(NewMainView);

反过来是:

detailNavigator.popView();
sideNavigator.visible = false;
sideNavigator.popView();

这给了我我需要的一切。

于 2012-10-12T13:36:07.950 回答