Como ocultar o cabeçalho do componente Tabs

5

Estou escrevendo um aplicativo usando o Ubuntu SDK e tenho um componente PageStack dentro de um componente Tabs .

Quando eu carrego uma das páginas dentro do PageStack, tudo funciona bem, e no cabeçalho o nome da aba atual é mostrado. No entanto, se quando a página está aberta em vez de apertar o botão Voltar da barra de ferramentas eu escolho outra guia, isso confunde totalmente a barra de ferramentas, que então não mostra mais o botão Voltar.

Existe uma maneira de tornar minhas páginas em tela cheia, para que o cabeçalho com o nome da guia atual não seja mostrado (e, portanto, não possa ser tocado), ou melhor ainda, para mostrar o título da página atual na tela. cabeçalho em vez do título da guia pai?

Tabs {
    id: tabs

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

    // ...
}

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

    }
    
por David Planella 10.05.2014 / 15:30

2 respostas

3

O crédito vai para Szymon Waliczek, que respondeu isso no G +. O snippet a seguir oculta o cabeçalho em todas as páginas, exceto na página raiz.

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
        };
    }
}

Isso funciona como um encanto, embora a barra de ferramentas ainda fique confusa e seja mostrada na página raiz, onde ela nem está definida.

Alguma idéia de como refiná-lo e, em vez de ocultar o cabeçalho, mostrar o título da página atual em vez do título da guia pai?

    
por David Planella 10.05.2014 / 16:56
1

Na verdade, enquanto a outra resposta é válida para a pergunta original, a melhor maneira é fazer o contrário e aninhar o Tabs dentro de um PageStack , como descrito nesta outra questão .

    
por David Planella 10.05.2014 / 19:21