移动设备在调用键盘时向上移动元素,但当设备的键盘显示为下图时,有些元素保持在相同位置。
当设备的键盘出现时,如何将Qml项目固定在同一位置?
我需要将Rectangle
与id: principal
保持固定在同一位置。
import QtQuick 2.4
import QtQuick.Window 2.2
import QtQuick.Controls 1.3
Window {
visible: true
property int larguraTela: 360
property int alturaTela: 640
width: larguraTela
height: alturaTela
maximumWidth: larguraTela
maximumHeight: alturaTela
minimumWidth: larguraTela
minimumHeight: alturaTela
title: "OverStatusBar"
Rectangle {
id: principal
width: parent.width
height: parent.height * 0.15
anchors.top: parent.top
color: "orange"
}
Rectangle {
width: parent.width
height: parent.height * 0.85
anchors.top: principal.bottom
clip: true
Rectangle{
id: retangulo1
width: parent.width
height: parent.height * 0.5
anchors.top: parent.top
color: "grey"
}
Rectangle {
id: retangulo2
width: parent.width
height: parent.height * 0.5
anchors.top: retangulo1.bottom
color: "lightgrey"
TextField {
id: campoTexto
width: parent.width * 0.7
height: parent.height * 0.20
anchors.centerIn: parent
inputMethodHints: Qt.ImhDigitsOnly
}
}
}
}
答案 0 :(得分:0)
好的,经过对该主题的长期研究后,我得出结论,至少到目前为止,没有可能的解决方案,并没有涉及大量的解决方案来解决使用跨平台编程的解决方案。我尝试了一堆跨平台语言,没有可以实现的令人满意的解决方案。我试过的语言是:
QML
Appcelerator(Titanium)
PhoneGap(Cordova)
原生剧本
React Native
我的结论是,如果我想开发原生外观和感觉应用程序按预期工作并且没有错误,我需要使用本机编程语言,即使我需要使用不同语言开发两次。这就是我从现在开始做的事情:XCode和Android Studio。
如果有人想看一段代码开始在QML中进行,只需访问链接clicking here:
我有一些非常苛刻的东西,并且乞求改进,但我认为它正朝着正确的方向发展:
import QtQuick 2.4 import QtQuick.Window 2.2 import QtQuick.Controls 1.3 Window { visible: true property int larguraTela: 360 property int alturaTela: 640 width: larguraTela height: alturaTela maximumWidth: larguraTela maximumHeight: alturaTela minimumWidth: larguraTela minimumHeight: alturaTela title: "OverStatusBar" Rectangle { id: principal width: parent.width height: parent.height * 0.15 anchors.top: parent.top color: "orange" } Timer{ id:resetKeyboard interval: 500 onTriggered: { Qt.inputMethod.hide(); Qt.inputMethod.show(); unlock.restart(); } } Timer{ id:unlock interval: 500 onTriggered: { flickable.updateSlideContent = true; } } Flickable{ id:flickable width: parent.width height : slideContent ? parent.height * 0.5 : parent.height * 0.85 anchors.top: principal.bottom clip: true contentHeight: parent.height * 0.85 contentY : slideContent ? parent.height*0.35 : 0 property bool updateSlideContent : true property bool slideContent : false property bool keyboardVisible : Qt.inputMethod.visible onKeyboardVisibleChanged: { if (updateSlideContent) { slideContent = keyboardVisible; if (keyboardVisible) { updateSlideContent = false; resetKeyboard.restart(); } } } Rectangle { anchors.fill: parent Rectangle{ id: retangulo1 width: parent.width height: parent.height * 0.5 anchors.top: parent.top color: "grey" } Rectangle { id: retangulo2 width: parent.width height: parent.height * 0.5 anchors.top: retangulo1.bottom color: "lightgrey" TextField { id: campoTexto width: parent.width * 0.7 height: parent.height * 0.20 anchors.centerIn: parent inputMethodHints: Qt.ImhDigitsOnly } } } } }