导航组内的选项卡组 - 导航栏均显示且导航组标题丢失

发布于 2025-01-08 06:38:32 字数 3190 浏览 8 评论 0原文

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

我看到的问题有两个方面;

  • 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 获取导航栏中的标题的方法?这是一个错误吗?

感谢您的帮助。

I have an app that contains a messaging system. It consists of a TableView that splits off into two TabGroups, using a NavGroup (I'm using Ti 1.7.5).

The problem I'm seeing is two fold;

  • Both title bars of the NavGroup and the Tab are being displayed, and
  • The TabGroup's title is not being displayed in the NavGroup title bar.

The following screenshot illustrates both problems:

TabGroup in a NavGroup problem

Code (please note this is heavily summarised):

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;
}

Does anyone know of a work around or something to get the title in the Navigation bar from the TabGroup? Is this a bug?

Your assistance is appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

所有深爱都是秘密 2025-01-15 06:38:32

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

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

虽然看起来不一样,但是选项卡栏。

Titanium discourage the use of tab groups within navigation groups as they are both window managers, displaying a titlebar at the top.

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

While it doesn't look the same, a tabbed bar should be used instead.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文