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
,正如另一个问题所述。