Qt for Android 开发大坑
作者: qyvlik
Qt 5.5.1
这里说一说比较常见的 Qt 开发安卓的大坑。希望同学们不要做无谓的挣扎,跳过这些坑。
输入框
首当其冲的是输入框,Qt 的输入在安卓上表现不佳.
无法支持安卓原生的输入法访问 Qt 的输入框,就是安卓输入法无法复制,粘贴,剪切 Qt 输入框中的文本。
无法支持使用触摸的方式选中 Qt 输入框中的文字。
如果输入框的位置处于应用底部,类似于 IM 那种聊天工具,应当注意。
a. 如果应用 Activity 设置为 android:windowSoftInputMode="adjustResize",弹出输入法时,应用界面就会进行缩放,这个时候,应用界面就会闪烁。
b. 如果应用 Activity 设置为 android:windowSoftInputMode="adjustPan",应用界面的头部就会被顶出屏幕。
为了修复上诉的问题,参照如下步骤
a. 先设置应用 Activity 设置为 android:windowSoftInputMode="adjustPan",这样,弹出输入法时,就不因为界面缩放而闪烁。
b. 获取到安卓输入法高度。
c. 修改输入框,使其被点击获取焦点之前,先弹出输入法(Qt.inputMethod.show()),由于不是输入框获取焦点而弹出输入发,所以界面既不会闪烁,也不会相对屏幕向上位移。(就是在 TextField 上放一个 MouseArea)
d. 在输入法