Навигация по клавише Назад не работает, даже если фокус установлен на true

В моем приложении Qt Android я помещаю элемент из меню в StackView:

import QtQuick 2.0
import QtQuick.Controls 1.0

ApplicationWindow
{
    menuBar: MenuBar
    {
        Menu
        {
            title: qsTr("Menu")
            MenuItem
            {
                text: qsTr("Push page")
                onTriggered: stackView.push("qrc:/qml/SecondPage.qml")
            }
        }
    }

    StackView
    {
        id: stackView
        anchors.fill: parent
        // Implements back key navigation
        focus: true

        initialItem: FirstPage
        {
            width: parent.width
            height: parent.height
        }
    }
}

SecondPage.qml:

import QtQuick 2.0
import QtQuick.Controls 1.0

Item
{
    width: parent.width
    height: parent.height
    // focus: true

    Keys.onBackPressed: stackView.pop()

    Label
    {
        anchors.centerIn: parent
        text:  "Some text"
        font.pointSize: 32
        color: "gray"
    }
}

Хотя клавиша "Назад" закрывает все приложение. Я пытался добавить focus: true туда, где это закомментировано и зовет event.accepted = true в Keys.onBackPressed, Почему нажатие клавиши назад игнорируется?

1 ответ

Решение

Я должен был поставить pop заявление в StackView сама, а не в дочернюю страницу:

StackView
{
    id: stackView
    anchors.fill: parent
    // Implements back key navigation
    focus: true

    initialItem: FirstPage
    {
        width: parent.width
        height: parent.height
    }

    Keys.onBackPressed: pop()
}
Другие вопросы по тегам