NavGroup中的TabGroup - 缺少导航栏显示和NavGroup标题

时间:2012-02-24 04:38:48

标签: tabs navigation titanium titanium-mobile

我有一个包含邮件系统的应用程序。它由一个TableView组成,它使用一个NavGroup(我使用的是Ti 1.7.5)分成两个TabGroup。

我看到的问题有两个;

  • 正在显示NavGroup和Tab的标题栏,
  • TabGroup的标题未显示在NavGroup标题栏中。

以下屏幕截图说明了这两个问题:

TabGroup in a NavGroup problem

代码(请注意这是大量总结的):

csu.module.messages.createMainWindow = function() {
    csu.module.messages.mainWindow = Ti.UI.createWindow($$.moduleMainWindow);
    csu.module.messages.navGroupContainer = Ti.UI.createWindow($$.modalContainer);
    var mainTableView = Ti.UI.createTableView($$.tableView);

    csu.module.messages.navGroup = Ti.UI.iPhone.createNavigationGroup({
        window: csu.module.messages.mainWindow
    }); 

    ...

    mainTableView.addEventListener('click', function(e){
        // Event info
        var index = e.index, section = e.section, row = e.row, rowData = e.rowData;

        switch(index) {
            case 0:
                // inbox;
                csu.module.messages.inboxView = csu.module.messages.createInboxView(); // returns the tabgroup
                csu.module.messages.navGroup.open(csu.module.messages.inboxView);
                break;
            case 1:
                // archive;
                csu.module.messages.archiveView = csu.module.messages.createArchiveView(); // Returns another tabgroup
                csu.module.messages.navGroup.open(csu.module.messages.archiveView);
                break;
        }
    });

    ...

    csu.module.messages.mainWindow.add(mainTableView);
    csu.module.messages.navGroupContainer.add(csu.module.messages.navGroup);
}

csu.module.messages.createInboxView = function() {
    var tabGroup = Ti.UI.createTabGroup({
        title: 'Inbox',
        navBarHidden: false,
        backgroundColor: '#000000',
        barColor: csu.ui.theme.headerColor // black
    });

    var criticalInbox = csu.module.messages.createListWindow(m_Config.MESSAGE_TYPE_CRITICAL, true);

    csu.module.messages.criticalInboxTab = Ti.UI.createTab({
        title: 'Critical',
        icon: 'images/tab-critical.png',
        window: criticalInbox
    });

    ...

    // two other tabs are created

    tabGroup.addTab(csu.module.messages.criticalInboxTab);
    tabGroup.addTab(csu.module.messages.importantInboxTab);
    tabGroup.addTab(csu.module.messages.generalInboxTab);

    return tabGroup;
};

csu.module.messages.createListWindow = function(listType, isInbox) {
    var tabWindow, title, tableView;

    switch(listType) {
        case m_Config.MESSAGE_TYPE_CRITICAL:
            title = 'Critical';
            break;
        case m_Config.MESSAGE_TYPE_IMPORTANT:
            title = 'Important';
            break;
        case m_Config.MESSAGE_TYPE_GENERAL:
            title = 'General';
            break;
    };

    tableView = Ti.UI.createTableView();
    var tableData = new Array();
    tableView.setData(tableData);

    tabWindow = Ti.UI.createWindow({
        title: title,
        navBarHidden: false         
    });

    tabWindow.add(tableView);

    return tabWindow;
}

有没有人知道在TabGroup的导航栏中获取标题的工作或什么?这是一个错误吗?

感谢您的协助。

1 个答案:

答案 0 :(得分:0)

Titanium不鼓励在导航组中使用选项卡组,因为它们都是窗口管理器,在顶部显示标题栏。

请参阅:http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window

虽然看起来不一样,但应使用tabbed bar代替。