web-dev-qa-db-ja.com

Tabsコンポーネントのヘッダーを非表示にする方法

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
        // ...

    }
5
David Planella

クレジットは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
        };
    }
}

これは魅力のように機能しますが、ツールバーは依然として混乱し、定義されていないルートページに表示されます。

これをさらに洗練する方法についてのアイデアはありますか?ヘッダーを隠す代わりに、親タブの代わりに現在のページのタイトルを表示しますか?

3
David Planella

実際には、他の答えは元の質問に対して有効ですが、最善の方法は反対の方法でそれを行い、Tabsの中にPageStackをネストすることです この他の質問で説明されているように

1
David Planella