如何将tabGroup放入窗口或查看Titanium Mobile

时间:2012-10-15 08:35:39

标签: javascript titanium appcelerator titanium-mobile appcelerator-mobile

我在钛金属移动设备上进行简单的登录和菜单显示。这是我的登录代码:

Login.js

function Login() {
    var loginView = Titanium.UI.createView({
        backgroundColor:'#C4FBFF',
        layout:'vertical'
    });

    var txtUsername = Titanium.UI.createTextField({
        width:'75%',
        hintText:'Username',
        borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
    });

    var txtPassword = Titanium.UI.createTextField({
        width:'75%',
        hintText:'Password',
        borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED,
        passwordMask:true
    });

    var btnLogin = Titanium.UI.createButton({
        title:'Login',
        width:'75%'
    });

    loginView.add(txtUsername);
    loginView.add(txtPassword);
    loginView.add(btnLogin);

    btnLogin.addEventListener('click',function(e){
        var alertDialog = Titanium.UI.createAlertDialog({ 
            title: 'Confirmation', 
            message: 'You will be logged in as ' + txtUsername.value + ', continue?',
            buttonNames: ['Yes','No'] 
        });

        alertDialog.addEventListener('click',function(e){
            if (e.index === 0){ //Yes Pressed
                var isAndroid = Ti.Platform.osname === 'android' ? true : false;
                var MainMenu = isAndroid === true ? require('ui/handheld/android/MainMenu') : require('ui/handheld/MainMenu');

                var mainMenuWindow = Titanium.UI.createWindow({
                    backgroundColor:'#336699',
                    title:'Main Menu',
                    modal:true,
                    navBarHidden: isAndroid === true ? true : false
                });

                var mainMenu = new MainMenu(mainMenuWindow);
                mainMenuWindow.add(mainMenu);

                mainMenuWindow.open();

            }
            else{ // No Pressed
                makeAlert('Login','Please contact your system administrator');
            }
        });

        alertDialog.show();
    });

    function makeAlert(title, message) {
        var customAlertDialog = Titanium.UI.createAlertDialog({ 
            title: title, 
            message: message,
            buttonNames: ['Ok']
        });
        return customAlertDialog.show();
    }

    return loginView;
}

module.exports = Login;

这是MainMenu.js

function MainMenu(_parent){
    var mainMenuView = Titanium.UI.createView({
        backgroundColor:'#C4FBFF',
        layout:'vertical'
    });

    var btnLeftNavBar = Titanium.UI.createButton({
        title:'Logout'
    });

    var txtTest = Titanium.UI.createTextField({
        hintText:'iPhone',
        width:'75%',
        borderStyle:Titanium.UI.INPUT_BORDERSTYLE_ROUNDED
    });

    _parent.setLeftNavButton(btnLeftNavBar);
    mainMenuView.add(txtTest);  

    btnLeftNavBar.addEventListener('click',function(e){
        _parent.close();
    });

    return mainMenuView;
}

module.exports = MainMenu;

MainMenu.js只在navBar上显示一个按钮以关闭窗口..

主要问题是我想把tabGroup放在MainMenu.js上,所以我可以从中选择一些菜单。

可以将tabGroup放在窗口中吗?任何建议,所以我可以将tabGroup放在MainMenu.js而不改变主应用程序结构?

非常感谢..

1 个答案:

答案 0 :(得分:6)

无法将制表符组添加为任何其他元素的子节点。 参考:Top Level Containers @ add method of tabgroup

文本:

  

顶级容器

     

某些顶级容器并非如此   添加为其他观点的孩子。这些顶级容器   包括Window,SplitWindow和TabGroup。其他类型的观点必须   被添加到顶级容器中以便在屏幕上显示。