> Hello,
> I am trying to disable Qt auto-scrolling on mobile devices(iOS, Android) when 
> focusing on an input field in QtQuick.
> 
> For iOS it was pretty simple and just for a proof of concept making 
> QIOSInputContext::scrollableRootView to always to return 0 disabled the 
> auto-scrolling so we can in our app deal with keyboard showing or hiding. We 
> have our own complex UI and auto-scrolling makes it a bad user experience. 
> Dealing with it turned out to be more work and never ending race condition.
> 
> So, it works very good now on iOS, my next step will be android and this is 
> not that straightforward. Not familiar with Android internals, and after 
> reading Android platform plugin and base java/jar sources i am still puzzled 
> when the scrolling happens.
> 
> Does anybody can point me where to look? This will save time but i am going 
> to dig into it anyway, so this is not a request.
> 
> The actual question is, if disabling will show it is possible, what would be 
> the solution to make it available to developers? For complex apps, the 
> auto-scroll does not make sense. 
> I looked into QPlatformIntegration classes, the only generic method is to set 
> QPlatformWindow flags. At the same time with this little switch i do not want 
> to break binary compatibility or change a lot of base classes. Having it 
> available in the C++ at least makes it flexible to use the auto-scroll or not.


I do have some experience with this, yeah, I find it frustrating at times.
What I did was to represent the keyboard rect in my layout. But as you can see 
with the code below, I commented it out. I remember having experiences some 
Android/iOS differences. (As evidenced by the logic). It seems that this code 
was to handle the issue of the keyboard coming up over the listview. I also 
have have a comment in my android manifest: <!-- 
android:windowSoftInputMode="adjustResize" --> which seems to indicate that I 
removed that from the defaults, or I at least experimented with it. 

Anyhow, better control of the keyboard/window behavior would be greatly 
appreciated.

        Item {
                id: keyboardSpacer
                height: 0
                anchors{
                        left: parent.left
                        right: parent.right
                        bottom: parent.bottom
                }
        }

        Connections {
                target: Qt.inputMethod
                onKeyboardRectangleChanged: {
                        console.log("Qt.inputMethod.visible:", 
Qt.inputMethod.visible, Qt.inputMethod.keyboardRectangle.height 
                        //keyboardSpacer.height = (Qt.platform.os === 
"android") ? Qt.inputMethod.keyboardRectangle.height / Screen.devicePixelRatio: 
0;
                        listView.positionViewAtEnd()
                }
        }
_______________________________________________
Development mailing list
[email protected]
http://lists.qt-project.org/mailman/listinfo/development

Reply via email to