Ubuntu SDKを使用してアプリを作成していますが、a PageStack
コンポーネント内にTabs
コンポーネントがあります。
PageStack内のページの1つをロードすると、すべて正常に機能し、ヘッダーに現在のタブの名前が表示されます。ただし、ツールバーの[戻る]ボタンを押す代わりにページが開いているときに別のタブを選択すると、ツールバーが完全に混乱し、[戻る]ボタンが表示されなくなります。
現在のタブの名前を持つヘッダーが表示されないように(したがってタップできないように)ページを全画面表示する方法がありますか?親タブのタイトルは?
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
};
}
}
これは魅力のように機能しますが、ツールバーは依然として混乱し、定義されていないルートページに表示されます。
これをさらに洗練する方法についてのアイデアはありますか?ヘッダーを隠す代わりに、親タブの代わりに現在のページのタイトルを表示しますか?
実際には、他の答えは元の質問に対して有効ですが、最善の方法は反対の方法でそれを行い、Tabs
の中にPageStack
をネストすることです この他の質問で説明されているように 。