2012-04-09 17 views
11

Im obecnie używam phonegap dla aplikacji mobilnej w ramach ich rozwoju. Na moim ekranie logowania, gdy wybieram pole tekstowe, widok kurczy się poziomo, gdy klawiatura przesuwa się w górę. Dzieje się tak tylko w systemie Android, a nie w systemie iOS.PhoneGap: Czy istnieje sposób, aby zatrzymać zmianę rozmiaru widoku klawiatury?

To dotyczy mnie, ponieważ mam dolny pasek narzędzi, który jest position:absolute; bottom:0; i ten pasek narzędzi jest wypychany w systemie Android, gdy pojawia się klawiatura. W systemie iOS klawiatura po prostu je nakłada.

Odpowiedz

26

W AndroidManifest.xml na swojej głównej działalności dodaj następujący:

android:windowSoftInputMode="adjustPan" 

i

android:configChanges="orientation|keyboardHidden" 

W index.html dodać co traumalles zauważył:

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" /> 
+2

, przechodząc tę ​​trasę, nie jest możliwe, że klawiatura zakrywa pole wprowadzania. Stamtąd użytkownik nie będzie widział tego, co pisze. – darewreck

+0

@darewreck ma słuszność, ponieważ miałem ten problem i zaimplementowałem to rozwiązanie i nie zadziała dla mnie z tego powodu.Wydaje mi się, że będę musiał znaleźć rozwiązanie, w którym będę mógł dowiedzieć się, jak ustalić, czy klawiatura jest wyświetlana, przypisać do zmiennej i przełączać widoczność mojego dolnego paska na podstawie tego, ponieważ zachowanie pola jest lepsze z oryginalne ustawienia. Odpowiedź jest prawidłowa, ale punkt odważny jest bardzo ważny – chairmanmow

0

Dodaj

<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, maximum-scale=1.0, target-densityDpi=device-dpi" /> 

do głowy tagu

+9

To nie działa. – AlexCheuk

+0

Czy dodano drugi znacznik aktywności w AndroidManifest.xml? Zmień nazwę pakietu na com.phonegap.DroidGap na Phonegap 1.4.x i wcześniejszą – allesmi

0

Do góry na Eu Vid's answer, pragnę podkreślić, że Cordova 6.4.0 i powyżej posiada wsparcie dla <edit-config /> które możemy wykorzystać do modyfikacji AndroidManifest.xml.

Najpierw musisz dodać atrybut przestrzeni nazw Androida. W swoim config.xml dodaj nowy atrybut xmlns:android="http://schemas.android.com/apk/res/android" do <widget />. Twój blok widget powinien wyglądać mniej więcej tak:

<widget 
    id="com.my.app" 
    version="0.0.1" 
    xmlns="http://www.w3.org/ns/widgets" 
    xmlns:cdv="http://cordova.apache.org/ns/1.0" 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

Teraz dodaj następujący kod wewnątrz<widget />:

<edit-config file="AndroidManifest.xml" mode="merge" target="/manifest/application/activity"> 
    <activity android:configChanges="orientation|keyboardHidden" android:windowSoftInputMode="adjustPan" /> 
</edit-config> 

Teraz kiedy zadzwonić cordova platform add android The AndroidManifest.xml będą generowane z ustawieniami powyżej.

Uwaga:

  • Powyższy kod nie zastąpi blok <activity> ale łączy się z nim; zastąpi on tylko określone atrybuty xml.
  • Jeśli wcześniej zadzwoniłeś już pod numer cordova platform add android, możesz go najpierw usunąć, wpisując najpierw cordova platform rm android, a następnie dodać go ponownie.
Powiązane problemy