Android + PhoneGap: Android: windowSoftInputMode scheint nicht zu funktionieren

8

Ich entwickle ein-PhoneGap-basierte Anwendung und ich gegoogelt viel darüber, wie meine Webansicht anpassen seine Höhe machen, wenn virtuelle Tastatur erscheint, oder zumindest die Höhe der virtuellen Tastatur bekommen. Ich habe viele Posts gefunden (einschließlich stackoverflow), was besagt, dass

%Vor%

muss im Manifest festgelegt werden, und das habe ich getan. Ich fand auch, dass es für PhoneGap config.xml

gibt %Vor%

Einstellung und ich habe das auch eingefügt. Ich habe auch versucht kombinierten Wert ‚stateVisible | adjustResize‘ (nicht nur ‚adjustResize‘) für beide Parameter, aber es scheint mir, dass sie beide keine Wirkung. Ich weiß nicht, vielleicht etwas mache ich falsch, aber Sie können die Screenshots aus dem Emulator überprüfen (Android 4.0.3, aber ich habe auch versucht, 4.1.2 und 4.2.2):
Ссылка - Tastatur sichtbar
Ссылка - Tastatur versteckt
Auf dem Screenshot habe ich absichtlich meine manifest- und config.xml-Einstellungen erfasst, damit Sie sehen, dass sie tatsächlich da sind.
Ich habe sogar kurze Videos aufgenommen - Ссылка

Wie Sie vielleicht sehen, wird bei der Anzeige / Ausblendung der Tastatur keine Größenänderung des Darstellungsbereichs vorgenommen. Ich habe auch window.innerHeight mit console.log () überprüft und es bleibt für beide sichtbar und versteckte Tastatur.

Bitte geben Sie mir einen Rat.

    
Stranger 14.11.2013, 22:36
quelle

3 Antworten

6

windowSoftInputMode="adjustResize" funktioniert nicht, wenn sich Ihre App im Vollbildmodus befindet (Einstellung fullscreen auf true in config.xml ). Es ist Androids Problem nicht Cordova. das Problem CB-4404 wurde in Cordova Bug Tracker seit Monaten archiviert, aber kürzlich stellt sich heraus, dass es funktioniert wie beabsichtigt auf Android Bug Tracker.

Ich habe das Problem gelöst, indem ich fullscreen auf false gesetzt habe, da es für meine App kein Problem war, nicht im Vollbildmodus zu erscheinen.

    
Armno 23.05.2014, 09:18
quelle
1

Ich fand, dass ich drei Dinge benötigte, um dieses Problem zu lösen und zu verhindern, dass die actionBar sich selbst verdeckte und nicht scrollte, wenn die Soft-Tastatur aufgerufen wurde.

1) In AndroidManifest.xml benötigte ich in der betreffenden Aktivität die Zeile:

%Vor%

Das ursprüngliche Problem ist, dass adjustPan in der obigen Zeile vorhanden war. Zuerst hat nur die obige Änderung das Problem behoben.

Das Projekt, in dem ich bin, verwendet Fragmente. In der onCreateView-Methode hatte ein anderes Fragment die folgende Zeile:

%Vor%

Diese Zeile hat leider den Parameter adjustResize im Anwendungsmanifest überschrieben, und nachdem das andere Fragment angezeigt wurde, ist das Fragment, das ich repariert habe, erneut fehlerhaft. Also, um die neue Pause zu beheben, habe ich 2 zusätzliche Dinge getan.

2) Ich habe die SOFT_INPUT_ADJUST_PAN-Zeile aus der onCreateView-Methode dieses anderen Fragments gelöscht, weil sie diese Zeile sowieso nicht benötigt hat.

3) In der onCreateView-Methode des Fragments, mit dem ich mich hauptsächlich beschäftige, fügte ich die Zeile hinzu:

%Vor%

Tatsächlich würde die Lösung von Punkt 2 oder 3 das Problem lösen. Ich habe beides gründlich gemacht.

    
Jerry Frost 16.12.2014 03:31
quelle
0

Entweder können Sie diese Eigenschaft in android.manifest explizit auf "adjustNothing" setzen, dann müssen Sie den Modus "fullscreen" nicht auf false setzen. aber Sie müssen es jedes Mal aktualisieren, wenn Sie Android-Plattform aktualisieren / hinzufügen.

    
sameer 10.02.2016 06:58
quelle
yii\base\ErrorException
Copied! Copy Stacktrace Search Stackoverflow Search Google Error

PHP Core Warningyii\base\ErrorException

PHP Startup: Unable to load dynamic library 'mongodb.so' (tried: /usr/lib64/php/modules/mongodb.so (/usr/lib64/php/modules/mongodb.so: cannot open shared object file: No such file or directory), /usr/lib64/php/modules/mongodb.so.so (/usr/lib64/php/modules/mongodb.so.so: cannot open shared object file: No such file or directory))

$_GET = [
    'id' => '380832',
    'url' => 'androidphonegap-androidwindowsoftinputmode-doesnt-seem-to-work',
];

$_SESSION = [
    '__flash' => [],
];