487 Stimmen

Android: Wie verhindere ich, dass die Soft-Tastatur meine Ansicht nach oben schiebt?

Ich habe eine vertikale Schiebeschublade am unteren Rand meiner App. Wenn die Softtastatur geöffnet wird, schiebt sie die Registerkarte für die Schublade nach oben, so dass sie über der Tastatur sitzt. Ich möchte eigentlich, dass es am unteren Rand des Bildschirms bleibt und ausgeblendet wird, wenn die Tastatur angezeigt wird.

Ist noch jemand auf dieses Problem gestoßen? Weiß jemand, wie man es beheben kann?

785voto

Alexander Oleynikov Punkte 18714

Sie können die Aktivität einfach auf windowSoftInputMode Flagge zu adjustPan in Ihrem AndroidMainfest.xml Datei innerhalb Ihres Aktivitäts-Tags.

Prüfen Sie die offizielle Dokumentation für weitere Informationen.

<activity
   ...
   android:windowSoftInputMode="adjustPan"> 
</activity>

Wenn sich die Größe des Containers nicht ändert, ist die Höhe wahrscheinlich auf "an das übergeordnete Element anpassen" eingestellt. Wenn möglich, setzen Sie das übergeordnete Element auf "Wrap Content" oder ein Constraint-Layout mit Constraints für oben und unten des übergeordneten Elements.

Der übergeordnete Container schrumpft, um sich dem verfügbaren Platz anzupassen. Daher ist es wahrscheinlich, dass Ihr Inhalt innerhalb einer scrollenden Ansicht liegen sollte, um dies zu verhindern (abhängig vom Telefonhersteller und dem gewählten Layout...)

  1. Inhalt wird zusammengeschlagen
  2. Inhalt hängt vom Bildschirm ab
  3. Unzugänglicher Inhalt, weil er sich unter der Tastatur befindet

auch wenn es sich bei dem Layout um ein relatives oder ein Constraint-Layout handelt, könnte der Inhalt Probleme 1-3 aufweisen.

240voto

Daniel Douglas Punkte 3024

Keine der Antworten hat bei mir funktioniert, aber das hier hat den Trick gemacht: Fügen Sie dieses Attribut zu der activity Tag in Ihrem AndroidManifest.xml :

<activity
     ...
   android:windowSoftInputMode="adjustNothing"> 
</activity>

96voto

Artem Russakovskii Punkte 20909

In meinem Fall wurden die Tasten nach oben geschoben, weil die Ansicht über ihnen ein ScrollView und es klappte zusammen, wenn die Tasten über der Tastatur nach oben geschoben wurden, unabhängig vom Wert von android:windowSoftInputMode Ich war dabei.

Ich konnte verhindern, dass meine untere Tastenreihe durch die weiche Tastatur nach oben gedrückt wurde, indem ich android:isScrollContainer="false" en el ScrollView die sich über den Tasten befindet.

91voto

Dom Punkte 1387

Sie können versuchen, dieses Attribut dynamisch hinzuzufügen, indem Sie den folgenden Code in die Datei onCreate Methode für Ihre Tätigkeit:

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);

Das hat bei mir funktioniert, aber das:

android:windowSoftInputMode="adjustPan"

nicht.

47voto

amalBit Punkte 11775

Die Antworten hier haben mir nicht weitergeholfen. Also habe ich dies versucht:

android:windowSoftInputMode="adjustResize"

Das hat wunderbar funktioniert, jetzt verschwindet die Kopfzeile meiner App nicht mehr. Seine glatter.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X