Я борюсь с программной (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 со временем увеличивается (визуально увеличивается разрыв).
В любом случае это похоже на взлом, и я все еще ищу решение. Как с этим бороться? Я надеюсь, что в эти дни я просто плохо гуглю, потому что такая задача пользовательского интерфейса кажется мне довольно простой.