切换视图[Flash Builder 4.5-Flex Mobile]

切换视图[Flash Builder 4.5-Flex Mobile],mobile,flex4.5,flash-builder4.5,Mobile,Flex4.5,Flash Builder4.5,我正在尝试构建一个具有登录视图(无选项卡)的应用程序,在用户提交“登录”后,它将切换到另一个主视图(带选项卡)。这可能吗? 目前我选择了应用程序模板下的“选项卡式应用程序”。 要隐藏选项卡栏,我尝试: protected function view1_activateHandler(event:Event):void { // TODO Auto-generated method stub this.tabBarVisible =

我正在尝试构建一个具有登录视图(无选项卡)的应用程序,在用户提交“登录”后,它将切换到另一个主视图(带选项卡)。这可能吗?

目前我选择了应用程序模板下的“选项卡式应用程序”。
要隐藏选项卡栏,我尝试:

protected function view1_activateHandler(event:Event):void
        {
            // TODO Auto-generated method stub
            this.tabBarVisible = false;
        }
…但在运行应用程序时,隐藏有一个向下滑动的动画(意味着它不会立即隐藏)
另外,如果切换到主视图,则登录选项卡(属于LoginView)按钮将出现在选项卡栏上,我不希望出现该按钮

还有别的办法吗?我对Flash Builder/Flex 4.5还很陌生。。帮助


我需要10个声誉点来发布图片=。=对不起,我想发布截图以便更好地理解。还有4点:

您应该将view元素中的tabBarVisible属性设置为false,然后在登录后按如下方式更改它:

<s:View xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    tabBarVisible="false"
    title="My View" />

以下是我在评论中提到的

Main.mxml:

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
          xmlns:s="library://ns.adobe.com/flex/spark"
          xmlns:components="components.*"
          creationComplete="creationCompleteHandler(event)">
<fx:Script>
    <![CDATA[
        import mx.events.FlexEvent;

        private static var app:Main;

        public static function login():void {
            app.loginComponent.visible = false;
            app.navigator.visible = true;
        }

        protected function creationCompleteHandler(event:FlexEvent):void {
            app = this;
        }

    ]]>
</fx:Script>

<components:LoginComponent id="loginComponent" left="0" right="0" top="0" bottom="0" />


<s:TabbedViewNavigator id="navigator" left="0" right="0" top="0" bottom="0" visible="false">
    <s:ViewNavigator id="testView1" width="100%" height="100%" label="Test 1" firstView="views.TestView1" />
    <s:ViewNavigator id="testView2" width="100%" height="100%" label="Test 2" firstView="views.TestView2" />
</s:TabbedViewNavigator>

我在这里做的是创建一个默认应用程序,其中包含一个简单的登录组件,如下所示

LoginComponent.mxml:

<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
    <![CDATA[
        protected function login(event:MouseEvent=null):void {
            Main.login();
        }
    ]]>
</fx:Script>

<s:VGroup left="0" right="0" top="0" bottom="0" horizontalAlign="center" horizontalCenter="0"
          verticalAlign="middle" verticalCenter="0">
    <s:HGroup left="0" right="0" height="75" horizontalAlign="left" verticalAlign="middle">
        <s:Label text="User Name"/>
        <s:Spacer width="10" height="10"/>
        <s:TextInput id="usernameInput" width="200"/>
    </s:HGroup>
    <s:HGroup left="0" right="0" height="75" verticalAlign="middle">
        <s:Label text="Password"/>
        <s:Spacer width="18" height="10"/>
        <s:TextInput id="passwordInput" width="200" displayAsPassword="true" enter="login()"/>
    </s:HGroup>
    <s:HGroup left="0" right="0" height="75" verticalAlign="middle" horizontalAlign="center" gap="20">
        <s:Button label="Login" click="login(event)" id="btnLogin"/>        
    </s:HGroup>
</s:VGroup>


这使我能够拥有一个登录屏幕,我刚刚在一个组件中创建了该屏幕,并将其作为启动屏幕嵌入到主应用程序中,并且可以随意显示/隐藏选项卡ViewNavigator。我还没有试着从一个应用程序启动到下一个应用程序启动来查看状态是如何维护的(即,如果您想要持久登录,您可能可以在创建完成处理程序中进行一些验证,但这在这一点上取决于您)。

第一部分有效,谢谢Chad!但是因为我添加了一个选项卡视图“Login”,所以属于它的选项卡按钮出现在主视图的选项卡栏上(成功登录后)。我似乎找不到办法把它去掉。是不是因为一切都被包裹在里面?不同的状态有什么作用吗?我尝试过这样做:POh,不要添加名为login的选项卡视图。这是你可以尝试的。我将创建一个基础应用程序,而不是选项卡式应用程序,并手动创建一个选项卡式ViewNavigator部分。然后,您可以构建一个登录组件,并将其置于屏幕上的任何内容之上。然后显示/隐藏组件,显示/隐藏选项卡ViewNavigator,并在成功登录后启动第一个视图。我将在我的答案中添加一些额外的代码来演示。谢谢,我将尝试一下。我决定暂时不使用选项卡式视图。目前,我正在使用基于视图的应用程序模板从“选择域”>“登录”>“主视图”切换。其余的后续视图我只使用了列表组件[example>
受保护的函数List_changeHandler(事件:IndexChangeEvent):void{/“导航并将DomainID(数据)推送到下一个视图”navigator.pushView(views.LoginView,List.selectedItem.DomainID);}
不过,多探索一下会很好,我期待您的解决方案Chad(:当然,没问题,我很乐意帮忙!)事实上,我必须在我自己的应用程序中使用这个问题,所以我喜欢传播我学到的知识。如果你对你的新方法有其他问题,如果你愿意,我很乐意提供帮助。只需发布另一个问题,我会看看我是否能提供帮助。谢谢Chad!我尝试了你的建议,只是为了好玩。我将把它用作未来项目的参考!易于理解(:顺便问一下,是否可以实现从登录到主视图的转换?因为当前视图的切换似乎很突然。我尝试在切换到主视图之前添加一个忙碌的指示器,尽管LOL!(老实说,我是一个flex新手)或者我应该发布另一个关于此的新问题吗?哈哈!谢谢!
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
     xmlns:s="library://ns.adobe.com/flex/spark">
<fx:Script>
    <![CDATA[
        protected function login(event:MouseEvent=null):void {
            Main.login();
        }
    ]]>
</fx:Script>

<s:VGroup left="0" right="0" top="0" bottom="0" horizontalAlign="center" horizontalCenter="0"
          verticalAlign="middle" verticalCenter="0">
    <s:HGroup left="0" right="0" height="75" horizontalAlign="left" verticalAlign="middle">
        <s:Label text="User Name"/>
        <s:Spacer width="10" height="10"/>
        <s:TextInput id="usernameInput" width="200"/>
    </s:HGroup>
    <s:HGroup left="0" right="0" height="75" verticalAlign="middle">
        <s:Label text="Password"/>
        <s:Spacer width="18" height="10"/>
        <s:TextInput id="passwordInput" width="200" displayAsPassword="true" enter="login()"/>
    </s:HGroup>
    <s:HGroup left="0" right="0" height="75" verticalAlign="middle" horizontalAlign="center" gap="20">
        <s:Button label="Login" click="login(event)" id="btnLogin"/>        
    </s:HGroup>
</s:VGroup>