I’ve noticed that when the virtual keyboard opens in a QML application on iOS and Android, the screen shifts upward to keep the text input field in view. I’d like to implement my own custom mechanism for handling this, something similar to how KeyboardAvoidingView works in React Native, by adjusting the layout when the keyboard appears.
How to completely disable this default behavior when the keyboard opens?
import QtQuick
Window {
visible: true
flags: Qt.MaximizeUsingFullscreenGeometryHint
MouseArea {
anchors.fill: parent
onClicked: forceActiveFocus()
}
Rectangle {
anchors.fill: parent
color: "#f5f5f5"
Text {
anchors {
top: parent.top
left: parent.left
right: parent.right
bottom: inputBox.top
margins: 10
}
wrapMode: Text.WordWrap
text: "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum."
}
Rectangle {
height: 60
anchors {
left: parent.left
right: parent.right
bottom: parent.bottom
margins: 10
}
color: "white"
radius: 8
border.color: "#ddd"
TextInput {
anchors {
fill: parent
margins: 8
}
text: "Text input control"
}
}
}
}
