如何隐藏 Tabs 组件的标题

如何隐藏 Tabs 组件的标题

PageStack我正在使用 Ubuntu SDK 编写一个应用程序,并且组件里面还有一个组件Tabs

当我加载 PageStack 中的某个页面时,一切正常,并且标题中会显示当前选项卡的名称。但是,如果在打开页面时我没有点击工具栏上的“后退”按钮,而是选择了另一个选项卡,工具栏就会完全混乱,不再显示“后退”按钮。

有没有办法让我的页面全屏显示,这样就不会显示带有当前选项卡名称的标题(因此无法点击),或者更好的是,在标题中显示当前页面的标题而不是父选项卡标题?

Tabs {
    id: tabs

    Tab {
            objectName: "tabQreator"
            title: i18n.tr("Create")
            page: CreatorPage {
                id: pageCreator
            }
    }

    // ...
}

还有CreatorPage.qml

PageStack {
    id: pageStack

    anchors {
        fill: parent
    }

    Component.onCompleted: push(pageRoot)

    Page {
        id: somePage

        // Toolbar definition here...
    }

    Page {
        id: pageRoot
        title: i18n.tr("The root page")
        visible: false
        // ...

    }

答案1

感谢 Szymon Waliczek,他在 G+ 上回答了这个问题。以下代码片段隐藏了除根页面之外所有页面的标题。

PageStack {
    id: pageStack

    onCurrentPageChanged: {
        if(pageStack.currentPage === pageRoot) {
            // mainview is the MainView's id
            mainview.header.visible = true
            mainview.header.show()
        } else {
            mainview.header.hide()
            mainview.header.visible = false
        };
    }
}

这很有效,尽管工具栏仍然会感到困惑并且显示在根页面上,但甚至没有定义。

关于如何进一步完善这一点,有什么想法吗?不是隐藏标题,而是显示当前页面的标题而不是父选项卡的标题?

答案2

实际上,虽然另一个答案对于原始问题有效,但最好的方法是反过来做,并将内部Tabs嵌套PageStack正如另一个问题所述

相关内容