6

Mein Ziel ist es, die meisten Messaging-Apps wie Facebook Messenger, Viber, Was geht bei der Anzeige eines Anhangsblattes zu erreichen. Wenn die Soft-Tastatur sichtbar ist und der Benutzer etwas anhängen möchte, wird die Tastatur ausgeblendet und das Anhangsblatt wird an seiner Stelle angezeigt.Passen Sie das Layout an, wenn die Android-Soft-Tastatur ein- oder ausgeblendet wird.

Um dies zu erreichen, sollten die Layoutänderungen stattfinden, wenn sich die Größe der Stammansicht ändert. Andernfalls tritt eine grafische Glitch auf, wo meine Layout-Änderungen angewendet werden, kurz bevor die Tastatur ein-/ausgeblendet wird.

Wenn ich mein Layout genau in dem Moment ändern könnte, in dem die Tastatur versteckt ist, könnte ich es richtig machen. Ich habe versucht, onGlobalLayoutListener aber ohne das gewünschte Ergebnis zu verwenden.

enter image description here

Antwort

0

Der beste Ort, um herauszufinden, ob Ihr Layout auf Grund der Tastatur geändert (dis) erscheinen und auf die Veränderung wirkende innerhalb onMeasure() des Wurzel Layout.

Ausführlicher habe ich ein benutzerdefiniertes LinearLayout, das als mein Root-Layout verwendet wird. Ich überging die onMeasure und ich calculate was ist die aktuelle Tastatur Höhe. Abhängig von der Höhe der Tastatur und davon, ob mein Anhangsgitter sichtbar sein sollte oder nicht, ändere ich die Sichtbarkeit des Anhangsrasters. Ich kann sogar die Höhe des Rasters auf dieselbe Weise wie die Tastatur einstellen.

Das Ergebnis sieht so aus, als ob sich das Raster immer unter der Tastatur befindet und die Textansicht an derselben vertikalen Stelle bleibt.

0

diese Zeile im Manifest Ihrer Aktivität hinzufügen.

<activity 
     android:name="com.your.Activity" 
     android:windowSoftInputMode="stateHidden|adjustPan" /> 
+0

Das hilft nicht. Ich möchte ** die Tastatur, um das Layout zu ändern, aber wenn es ausgeblendet wird, möchte ich in der Lage sein, das Layout in seiner vorherigen Position zu halten, so dass die Anhangsansicht angezeigt wird. Ich kann nicht herausfinden, wie all diese Apps dieses Verhalten bekommen. – Petrakeas

+0

versuchen Sie dieses Android: windowSoftInputMode = "stateHidden | adjustPan | adjustNothing" –

0

Verwenden Sie diesen Code Es wird hilfreich sein.

android:windowSoftInputMode="adjustNothing" 
+0

Ich möchte das Layout ändern, wenn die Tastatur dargestellt wird. Ich möchte in der Lage sein, die Tastatur durch die Ansicht des Anhangs zu ersetzen, wenn die Tastatur geschlossen wird. – Petrakeas