TabGroup в NavGroup - обе навигационные панели показывают и заголовок NavGroup отсутствует - PullRequest
0 голосов
/ 24 февраля 2012

У меня есть приложение, которое содержит систему обмена сообщениями.Он состоит из TableView, который разделяется на две группы TabGroup с использованием NavGroup (я использую Ti 1.7.5).

Проблема, с которой я сталкиваюсь, состоит из двух частей:

  • Отображаются обе строки заголовка 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?Это ошибка?

Ваша помощь приветствуется.

1 Ответ

0 голосов
/ 12 декабря 2012

Titanium препятствует использованию групп вкладок в группах навигации, поскольку они оба являются оконными менеджерами, отображая заголовок в верхней части.

См .: http://docs.appcelerator.com/titanium/latest/#!/api/Titanium.UI.Window

Хотя это не выглядитто же самое, вместо него следует использовать панель с вкладками .

...