导航组中的TabGroup - 导航栏显示和导航组标题丢失

问题描述:

我有一个包含消息系统的应用程序。它由一个TableView组成,它使用NavGroup(我使用Ti 1.7.5)分成两个TabGroups。导航组中的TabGroup - 导航栏显示和导航组标题丢失

我看到的问题是两倍;

  • 的NavGroup和标签的两个标题栏显示,和
  • 的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导航栏中的标题?这是一个错误?

您的帮助表示赞赏。

+0

您打开Tab Critical主窗口的位置? – 2012-02-24 05:58:12

+0

@MuhammadZeeshan在关闭表格视图的单击事件中,它打开navGroup,它打开TabGroup,该选项卡随其打开(我不必指定)。 – Cyntech 2012-02-24 10:35:01

+0

您是否尝试设置Windows标题? – 2012-02-24 11:37:06

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

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

虽然看起来不一样,一个tabbed bar应改为使用。