Virtual keyboard is covering my TextField when typing text
-
Hi guys,
I have absolute same issue (Symbian Belle) - building a registration page and the fields located in lower part of the screen start to be blocked by Input Panel (VKB).
I went through the example provided...
- I use PageStackWindow and setting ‘platformSoftwareInputPanelEnabled: true’ doesn't change anything. Maybe there is something else we should do to make it work (like setting content property?)
- Then I tried to implement a state behavior onActiveFocusChanged. Issue is on the device the inputContext.visible param always returns false regardless of actual position. Maybe it is a bug or maybe not...
Anyway what would be good from documentation standpoint is to provide exact examples of how PageStackWindow should be used to accomodate the feature and adjust content margins etc to make it visible...
Funny thing is that I tried splitscreen keyboard some time ago via a workaround (read some post re this). And at that time the view WAS adjusted just like it needs to be...
-
Before I posted about setting platformSoftwareInputPanelEnabled to true, I had verified that it works in a small example. This is the QML code I used (most of it is auto-generated by Qt Creator):
main.qml:
@import QtQuick 1.1
import com.nokia.symbian 1.1PageStackWindow {
id: window
initialPage: MainPage {tools: toolBarLayout}
showStatusBar: true
showToolBar: true
platformSoftwareInputPanelEnabled: trueToolBarLayout { id: toolBarLayout ToolButton { flat: true iconSource: "toolbar-back" onClicked: window.pageStack.depth <= 1 ? Qt.quit() : window.pageStack.pop() } }
}@
MainPage.qml:
@import QtQuick 1.1
import com.nokia.symbian 1.1Page {
id: mainPage
Item {
anchors.fill: parent
TextField {
anchors { top: parent.top; topMargin: 20; horizontalCenter: parent.horizontalCenter; }
width: 200
text: "Up above"
font.pixelSize: 20
}
TextField {
anchors { bottom: parent.bottom; bottomMargin: 20; horizontalCenter: parent.horizontalCenter; }
width: 200
text: "Down under"
font.pixelSize: 20
}
}Rectangle { anchors { fill: parent; margins: 5; } color: "transparent" border.color: "blue" }
}@
Both text fields are always visible, irrespective of whether the virtual keyboard is shown or not. I checked this on an X7-00 running Symbian Anna with Qt 4.7.4 installed.
-
The example by roopeshchander works fine for me too.
I've actually solved this problem this way:
@State {
name: "firstName"; when: inputContext.visible && nameTextfield.focusPropertyChanges { target: backgroundImage y: -20 } },@
backgroundImage in my case is the root element for the whole page, so changing the y property will move it up. The y value actually have to be attached to the inputContext.height value, and not hardcoded.
-
Well, it is automated. As is evident in QML code I posted earlier, it is all handled by the components as long as the items are anchored properly (i.e. anchored so that the items stay within the bounds of the page even if the page resizes).
-
I'm facing the same problem, all the items are anchored correctly. I've placed few textfields inside a flickable which resizes when VKB is visible but still it covers bottom textfields
I tried workaround suggest by strekazoid but even that's not working or may by I'm not doing it the correct way.
It would be great if some could help me.
thanks.
-
ravirdv, to solve this issue, use this: http://tftfy.blogspot.com/2012/02/help-virtual-keyboard-hiding-input-on.html
It works the same way as in Meego. With the bottom TextFields lifting up.