Программная клавиатура выдвигает root вверх - PullRequest
0 голосов
/ 07 апреля 2020

Я борюсь с программной (iOS / Android) клавиатурой, которая выдвигает весь вид вверх. Я не смог найти никакого решения, чтобы предотвратить такое поведение, и не смог найти обходной путь.

У меня есть довольно простая схема чата:

Page {

    header: Toolbar {
    }

    ColumnLayoyt {
        ListView {
        }

        Pane {
        }
    }
}

Что я сейчас пытаюсь в ореховая скорлупа:

Page {
    header: Toolbar {
        /// @hack Counterflow push
        topPadding: Qt.inputMethod.visible ? Qt.inputMethod.keyboardRectangle.width : 0
    }

    ColumnLayoyt {
        anchors.left: parent.left
        anchors.right: parent.right
        anchors.top: parent.top
        anchors.bottom: parent.bottom

        ListView {
            id: feedView

            Layout.fillWidth: true
            Layout.fillHeight: true
        }

        Pane {
            Layout.fillWidth: true
            Layout.prefferedHeight: textArea.implicitHeight

            TextArea {
                id: textArea
            }
        }
    }
}

Это в конечном итоге частично работает, но по какой-то причине Qt.inputMethod.keyboardRectangle.y меняется, когда textArea становится больше, а header.topPadding со временем увеличивается (визуально увеличивается разрыв).

В любом случае это похоже на взлом, и я все еще ищу решение. Как с этим бороться? Я надеюсь, что в эти дни я просто плохо гуглю, потому что такая задача пользовательского интерфейса кажется мне довольно простой.

...