Я пишу приложение с помощью SDK Ubuntu, и у меня есть a PageStack
компонент внутри aTabs
компонент.
Когда я загружаю одну из страниц в 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
// ...
}
Кредит переходит к 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
};
}
}
Это работает как очарование, хотя панель инструментов все еще запутывается и показана на корневой странице, где это даже не определяется.
Какие-либо идеи о том, как далее совершенствовать это и вместо того, чтобы скрыть заголовок, покажите заголовок текущего Page вместо той из родительской Вкладки?
На самом деле, в то время как другой ответ действителен для исходного вопроса, лучший способ состоит в том, чтобы сделать это наоборот и вложить Tabs
внутренняя часть PageStack
, , как описано по этому другому вопросу .