2014-06-11 46 views
0

我是新的jQuery的移動。 onkeyboardshow時,我正在使用調整平底鍋。我按照這個解決方案發表kieranroneill通過使用調整平底鍋使輸入的頂部的Android鍵盤棒

Phonegap Android Application not adjusting pan on keyboardshow

package com.com.app; 

import org.apache.cordova.Config; 
import org.apache.cordova.DroidGap; 

import android.os.Bundle; 
import android.view.WindowManager; 

public class BDH extends DroidGap 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     // Set by <content src="index.html" /> in config.xml 

     getWindow().setFlags(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN, WindowManager.LayoutParams.SOFT_INPUT_MASK_ADJUST); 

     getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN); 
     getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); 

     super.loadUrl(Config.getStartUrl()); 
     //super.loadUrl("file:///android_asset/www/index.html") 

     final View activityRootView = ((ViewGroup) findViewById(android.R.id.content)).getChildAt(0); 

     activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() 
      { 
       // r will be populated with the coordinates of your view that area still visible. 
       Rect r = new Rect(); 

       activityRootView.getWindowVisibleDisplayFrame(r); 

       int heightDiff = activityRootView.getRootView().getHeight() - (r.bottom - r.top); 

       // If more than 100 pixels, its probably a keyboard... 
       if (heightDiff > 100) 
       { 
            // Fire off a function to the JavaScript. 
        this.sendJavascript("try { onKeyboardShowing(); } catch (e) {};"); 
       } 
      } 
     }); 
    } 
} 

但現在是我的問題是有可能使滾動到粘在鍵盤上的頂部,而不是將其設置爲靜態值.Thanks

$('body').scrollTo(fieldFocused, 500, {offset:-??}); 

AndroidManifest.xml中

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.smartrealtor" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:resizeable="true" 
    android:anyDensity="true" 
    /> 



    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.VIBRATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" /> 
    <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.RECEIVE_SMS" /> 
    <uses-permission android:name="android.permission.RECORD_AUDIO" /> 
    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
    <uses-permission android:name="android.permission.READ_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 
    <uses-permission android:name="android.permission.BROADCAST_STICKY" /> 
    <uses-permission android:name="android.permission.READ_CALENDAR"/> 
    <uses-permission android:name="android.permission.WRITE_CALENDAR"/> 
    <uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/> 

<uses-sdk 
    android:minSdkVersion="8" 
     android:targetSdkVersion="19" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:theme="@style/AppTheme" 
     android:hardwareAccelerated="true" 


     > 
     <activity 
      android:name="com.example.smartrealtor.MainActivity" 
      android:label="SmartRealtor" 
      android:configChanges="orientation|screenSize|keyboard|screenLayout" 
      android:windowSoftInputMode="adjustPan" 
      android:hardwareAccelerated="true" 
      > 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <activity 
      android:name="org.apache.cordova.DroidGap" 
      android:label="@string/app_name" 
      android:alwaysRetainTaskState ="true" 

      > 
      <intent-filter></intent-filter> 
     </activity> 
    </application> 

</manifest> 

的Config.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!-- 
Licensed to the Apache Software Foundation (ASF) under one 
or more contributor license agreements. See the NOTICE file 
distributed with this work for additional information 
regarding copyright ownership. The ASF licenses this file 
to you under the Apache License, Version 2.0 (the 
"License"); you may not use this file except in compliance 
with the License. You may obtain a copy of the License at 

http://www.apache.org/licenses/LICENSE-2.0 

Unless required by applicable law or agreed to in writing, 
software distributed under the License is distributed on an 
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 
KIND, either express or implied. See the License for the 
specific language governing permissions and limitations 
under the License. 
--> 
<widget xmlns  = "http://www.w3.org/ns/widgets" 
     id  = "io.cordova.helloCordova" 
     version = "2.0.0"> 
    <name>Hello Cordova</name> 

    <description> 
     A sample Apache Cordova application that responds to the deviceready event. 
    </description> 

    <author href="http://cordova.io" email="[email protected]"> 
     Apache Cordova Team 
    </author> 

    <access origin="*"/> 
    <preference name="fullscreen" value="false" /> 
     <preference name="webviewbounce" value="false" /> 
     <preference name="KeyboardShrinksView" value="false" /> 



    <content src="index.html" /> 

    <preference name="loglevel" value="DEBUG" /> 
    <!-- 
     <preference name="splashscreen" value="resourceName" /> 
     <preference name="backgroundColor" value="0xFFF" /> 
     <preference name="loadUrlTimeoutValue" value="20000" /> 
     <preference name="InAppBrowserStorageEnabled" value="true" /> 
     <preference name="disallowOverscroll" value="true" /> 
     <preference name="webviewbounce" value="false" /> 
     <preference name="KeyboardShrinksView" value="true" /> 
    --> 

    <feature name="App"> 
     <param name="android-package" value="org.apache.cordova.App"/> 
    </feature> 
    <feature name="Geolocation"> 
     <param name="android-package" value="org.apache.cordova.GeoBroker"/> 
    </feature> 
    <feature name="Device"> 
     <param name="android-package" value="org.apache.cordova.Device"/> 
    </feature> 
    <feature name="Accelerometer"> 
     <param name="android-package" value="org.apache.cordova.AccelListener"/> 
    </feature> 
    <feature name="Compass"> 
     <param name="android-package" value="org.apache.cordova.CompassListener"/> 
    </feature> 
    <feature name="Media"> 
     <param name="android-package" value="org.apache.cordova.AudioHandler"/> 
    </feature> 
    <feature name="Camera"> 
     <param name="android-package" value="org.apache.cordova.CameraLauncher"/> 
    </feature> 
    <feature name="Contacts"> 
     <param name="android-package" value="org.apache.cordova.ContactManager"/> 
    </feature> 
    <feature name="File"> 
     <param name="android-package" value="org.apache.cordova.FileUtils"/> 
    </feature> 
    <feature name="NetworkStatus"> 
     <param name="android-package" value="org.apache.cordova.NetworkManager"/> 
    </feature> 
    <feature name="Notification"> 
     <param name="android-package" value="org.apache.cordova.Notification"/> 
    </feature> 
    <feature name="Storage"> 
     <param name="android-package" value="org.apache.cordova.Storage"/> 
    </feature> 
    <feature name="FileTransfer"> 
     <param name="android-package" value="org.apache.cordova.FileTransfer"/> 
    </feature> 
    <feature name="Capture"> 
     <param name="android-package" value="org.apache.cordova.Capture"/> 
    </feature> 
    <feature name="Battery"> 
     <param name="android-package" value="org.apache.cordova.BatteryListener"/> 
    </feature> 
    <feature name="SplashScreen"> 
     <param name="android-package" value="org.apache.cordova.SplashScreen"/> 
    </feature> 
    <feature name="Echo"> 
     <param name="android-package" value="org.apache.cordova.Echo"/> 
    </feature> 
    <feature name="Globalization"> 
     <param name="android-package" value="org.apache.cordova.Globalization"/> 
    </feature> 
    <feature name="InAppBrowser"> 
     <param name="android-package" value="org.apache.cordova.InAppBrowser"/> 
    </feature> 
    <feature name="Calendar"> 
    <param name="android-package" value="nl.xservices.plugins.Calendar" /> 
</feature> 
<feature name="SocialSharing"> 
    <param name="android-package" value="nl.xservices.plugins.SocialSharing" /> 
</feature> 

    <!-- Deprecated plugins element. Remove in 3.0 --> 
<plugins> 
    <plugin name="App" value="org.apache.cordova.App"/> 
    <plugin name="Geolocation" value="org.apache.cordova.GeoBroker"/> 
    <plugin name="Device" value="org.apache.cordova.Device"/> 
    <plugin name="Accelerometer" value="org.apache.cordova.AccelListener"/> 
    <plugin name="Compass" value="org.apache.cordova.CompassListener"/> 
    <plugin name="Media" value="org.apache.cordova.AudioHandler"/> 
    <plugin name="Camera" value="org.apache.cordova.CameraLauncher"/> 
    <plugin name="Contacts" value="org.apache.cordova.ContactManager"/> 
    <plugin name="File" value="org.apache.cordova.FileUtils"/> 
    <plugin name="NetworkStatus" value="org.apache.cordova.NetworkManager"/> 
    <plugin name="Notification" value="org.apache.cordova.Notification"/> 
    <plugin name="Storage" value="org.apache.cordova.Storage"/> 
    <plugin name="Temperature" value="org.apache.cordova.TempListener"/> 
    <plugin name="FileTransfer" value="org.apache.cordova.FileTransfer"/> 
    <plugin name="Capture" value="org.apache.cordova.Capture"/> 
    <plugin name="Battery" value="org.apache.cordova.BatteryListener"/> 
    <plugin name="SplashScreen" value="org.apache.cordova.SplashScreen"/> 
    <plugin name="Echo" value="org.apache.cordova.Echo" /> 
    <plugin name="BarcodeScanner" value="com.phonegap.plugins.barcodescanner.BarcodeScanner"/> 
    <plugin name="PushPlugin" value="com.plugin.gcm.PushPlugin" /> 
    <plugin name="Calendar" value="nl.xservices.plugins.Calendar"/> 
    <plugin name="SocialSharing" value="nl.xservices.plugins.SocialSharing"/> 

</plugins> 
</widget> 

回答

0

試試這個: 我希望你的PhoneGap版本更新3.0> 在水庫> XML-> config.xml中

更換

<preference name="fullscreen" value="true" />

<preference name="fullscreen" value="false" /> 

並在BDH.java文件中刪除您的個人添加的本機代碼。

+0

嗨,我現在的版本是使用2.9。順便說一句,我也改變全屏爲假。但調整鍋是行不通的,如果我刪除那些本機代碼 – user998405

+0

如果可能請更新您的phpnegap最新,你能告訴我你的AndroidMainfest.xml –

+0

嗨,我更新的XML。順便說一句,我不可能更新到3.0因爲我得到很多插件正在使用2.9 – user998405