Creating a mobile application using Phonegap 3.6.3 for Android and iOS. The problem is only for Android, as iOS acts as I would like it to.
When I click on an input text field, or a textarea, a soft keyboard appears. It covers these elements sometimes.
The pages are placed within a iScroll, right at the bottom, and another absolute-placed div, thus I cannot scroll to either of these once the screen pops up. I suspect I have to change the webview to be smaller when the keyboard comes up. However, after trying many things, it isn't working.
config.xml
<preference name="permissions" value="none" />
<preference name="phonegap-version" value="3.5.0" />
<preference name="orientation" value="default" />
<preference name="target-device" value="universal" />
<preference name="fullscreen" value="false" />
<preference name="webviewbounce" value="true" />
<preference name="prerendered-icon" value="false" />
<preference name="stay-in-webview" value="false" />
<preference name="ios-statusbarstyle" value="black-opaque" />
<preference name="detect-data-types" value="true" />
<preference name="exit-on-suspend" value="false" />
<preference name="show-splash-screen-spinner" value="false" />
<preference name="auto-hide-splash-screen" value="false" />
<preference name="disable-cursor" value="false" />
<preference name="android-minSdkVersion" value="13" />
<preference name="android-windowSoftInputMode" value="adjustResize|stateHidden" />
<preference name="android-installLocation" value="auto" />
<preference name="SplashScreen" value="splash" />
(have tried many different values for android-windowSoftInputMode, as per example below)
<preference name="android-windowSoftInputMode" value="stateVisible|adjustResize|adjustPan" />
head of web page
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height" />
(yes, I've tried many other things too)
anything else you may perceive as relevant, please let me know. Unfortunately, I'm not at liberty to share too much of the code, but from my understanding that's all we need to worry about.
Thanks,
Only one solution which worked for my full-screen app, it's to add to the Cordova application ionic-plugin-keyboard plugin
JS code :
After that You could adjust the view with CSS.
ref.: https://stackoverflow.com/a/25823491/634275
I too had the same problem - the underlying problem it seems is you can't edit the androidManifest file with cordova Build. All you can do is edit the
config.xml
file which really only allows you to change a limited subset of settings. What I would like is to be able to change thewindowSoftInputMode
.I did find a solution to my problem. which was the keyboard appearing over fields at the bottom of the screen which I think is the same problem you're having. I have used the cordova 2.9.0 and cordova 3.6.0
Solution 1: The solution I found was to change this setting in
config.xml
This does with that setting set to "false" instead of "true" - the page now scrolls up to reveal the field you're editing when the keyboard opens. (to be more accurate, I believe the
viewport
changes rather than scroll up. Hope you are right on your viewport part)Solution 2: Try remove or replace this line from config.xml
as
instead. This works for me now.
Solution 3: Try adding this style to your page
EDIT:
If your are using
jQuery
you can try that.My solution was using Ionic keyboard plugin and implementing this code:
HTML:
CSS:
Javascript:
when keyborad is open
when keyboard is closed
To provide a better user experience, add this code for all inputs
I am using the Ionic Keyboard Plugin to detect when the keyboard is open and add necessary padding accordingly to the body:
When the events fire, you can adjust the
padding-bottom
on the body to match the height of the keyboard.Then, in order to detect if the focused element is visible, you have to do the math and scroll the container if necessary. The final code I am using is the following:
The code makes use of Framework7 and its Dom7 library which is very similar to jQuery. It assumes the scrollable element is
.page-content
, but you can adjust it accordingly.You should leave the
android-windowSoftInputMode
preference at its default value.Esta funciona muy bien.
config.xml
plugin name="com.ionic-for-phonegap.keyboard" spec="0.0.1" source="pgb"
Remove this line from config.xml
And change the line in 'head of web page' to