Ich habe unten in meiner App eine vertikale Schublade. Wenn sich die Soft-Tastatur öffnet, wird die Lasche für die Schublade nach oben gedrückt, sodass sie auf der Tastatur sitzt. Ich möchte, dass es am unteren Rand des Bildschirms bleibt und ausgeblendet wird, wenn die Tastatur angezeigt wird.
Jemand anderes stößt auf dieses Problem? Wissen, wie man es reparieren kann
Sie können einfach die Variable windowSoftInputMode
flag Ihrer Aktivität in Ihrer AndroidMainfest.xml
-Datei innerhalb Ihres Aktivitäten-Tags auf adjustPan
setzen.
Überprüfen Sie die offizielle Dokumentation für weitere Informationen.
<activity
...
Android:windowSoftInputMode="adjustPan">
</activity>
Keine der Antworten hat für mich funktioniert, aber das hat den Trick:
Android:windowSoftInputMode="adjustNothing"
In meinem Fall war der Grund, warum die Tasten nach oben gedrückt wurden, weil die Ansicht über ihnen eine ScrollView
war, und sie wurde zusammengedrückt, wenn die Tasten über der Tastatur nach oben gedrückt wurden, unabhängig davon, welchen Wert von Android:windowSoftInputMode
ich eingestellt hatte.
Ich konnte vermeiden, dass meine unterste Tastenreihe von der Soft-Tastatur nach oben gedrückt wurde, indem ich Android:isScrollContainer="false"
auf der ScrollView
-Einstellung setzte, die über den Tasten liegt.
Sie können versuchen, dieses Attribut dynamisch hinzuzufügen, indem Sie den folgenden Code in die onCreate
-Methode Ihrer Aktivität einfügen:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Das hat für mich funktioniert, eher das:
Android:windowSoftInputMode="adjustPan"
nicht.
Diese Antworten haben mir nicht geholfen. Also habe ich es versucht:
Android:windowSoftInputMode="adjustResize"
Das hat wie ein Zauber funktioniert. Nun verschwindet der Header meiner App nicht. Es ist glatter.
Um dies programmgesteuert in einem Fragment auszuführen, können Sie folgenden Code verwenden
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Dieses in onResume () platzieren
Für Xamarin-Benutzer fügen Sie diesen Code zum Activity-Attribut der MainActivity-Klasse hinzu.
WindowSoftInputMode =Android.Views.SoftInput.AdjustNothing
oder Sie können diesen Code Window.SetSoftInputMode(Android.Views.SoftInput.AdjustNothing)
zur OnCreate-Methode der MainActivity-Klasse hinzufügen.
Für zukünftige Leser.
Ich wollte dieses Problem gezielt kontrollieren, also habe ich Folgendes getan:
verstecken Sie Ihre anderen Ansichten aus einem Fragment oder einer Aktivität (die nicht erforderlich sind, während die Tastatur aktiv ist), stellen Sie sie dann wieder her , um dieses Problem zu lösen:
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
rootView.getWindowVisibleDisplayFrame(r);
int heightDiff = rootView.getRootView().getHeight() - (r.bottom - r.top);
if (heightDiff > 100) { // if more than 100 pixels, its probably a keyboard...
//ok now we know the keyboard is up...
view_one.setVisibility(View.GONE);
view_two.setVisibility(View.GONE);
}else{
//ok now we know the keyboard is down...
view_one.setVisibility(View.VISIBLE);
view_two.setVisibility(View.VISIBLE);
}
}
});
Bisher haben mir die Antworten nicht weitergeholfen, da sich unterhalb der Textansicht ein Button und ein TextInput-Feld (nebeneinander) befinden, das durch die Tastatur immer ausgeblendet wird. Dies hat jedoch mein Problem gelöst:
Android:windowSoftInputMode="adjustResize"
Es muss nur eine Zeile hinzugefügt werden ...
Fügen Sie Android:windowSoftInputMode="stateHidden|adjustPan"
in der erforderlichen Aktivität Ihres manifest file
hinzu.
Ich habe gerade gelöst :) :)
Fügen Sie der "Aktivität" der Manifest-Datei den folgenden Code hinzu.
Android:windowSoftInputMode="adjustResize"
Android:windowSoftInputMode="stateHidden|adjustNothing"
Dieser Code funktioniert.
Das war das Beste, was für mich gearbeitet hat
Android:windowSoftInputMode="adjustNothing"
Versuch es!
Nun, ich habe mir diese Antworten angesehen, aber in meinem Fall bin ich auf dasselbe Thema gestoßen und habe durch eine sehr praktische und einfachste Lösung Zuflucht gesucht, bei der ein sehr kleines unschuldiges Attribut in Ihren Scrollview-Tag eingefügt wird, der sich in Ihrer XML-Datei befindet. Das ist
Android:isScrollContainer="false"
Viel Glück!
Dieser hat für mich gearbeitet
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_NOTHING);
Für die Bildlaufansicht:
wenn Sie nach dem Hinzufügen von Android:windowSoftInputMode="stateHidden|adjustPan"
in Ihr Android-Manifest noch immer nicht funktionieren.
Dies kann davon betroffen sein, weil sich die Tastatur in einer Bildlaufansicht befindet und wenn sich Ihre Schaltfläche/Objekte nicht in Ihrer Bildlaufansicht befinden, folgen die Objekte der Tastatur und verschieben ihre Position.
Überprüfen Sie Ihre XML-Datei, wo sich Ihre Schaltfläche befindet, und vergewissern Sie sich, dass sie sich unter Ihrer Scroll View-Klammer befindet und nicht außerhalb davon.
Hoffe das hilft aus. : D
Das Hauptfenster der Aktivität ändert sich nicht, um Platz für die Soft-Tastatur zu schaffen. Stattdessen wird der Inhalt des Fensters automatisch verschoben, sodass der aktuelle Fokus niemals durch die Tastatur verdeckt wird und der Benutzer immer sehen kann, was er eingibt.
Android:windowSoftInputMode="adjustPan"
Dies könnte eine bessere Lösung für das sein, was Sie wollten.
@manifest in Ihrer Aktivität:
Android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
Versuchen Sie, dies zu verwenden:
Android:windowSoftInputMode="stateHidden|adjustPan"
Dieser Code kann Ihnen helfen. Verwenden Sie es in Ihrer oncreate
-Methode.
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
Fügen Sie in Ihre Manifestdatei die Aktivität ein, die Sie anzeigen möchten. Stellen Sie jedoch sicher, dass Sie nicht die Aktivität Vollbild verwenden
Android:windowSoftInputMode="adjustPan"
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Dieser arbeitet für mich.
Wenn Sie die Ansicht beim Öffnen der Tastatur ausblenden möchten.
fügen Sie dies zu Ihrer Aktivität in der Manifestdatei hinzu
Android: windowSoftInputMode = "stateHidden | adjustPan" `
In meinem Fall brauchte ich die Tastatur, um verborgen zu bleiben, und gleich nach dem Klicken des Buttons muss mein Layout angepasst werden. Deshalb habe ich diesen Befehl einfach in das Manifest eingefügt und es wurde super richtig.
Android:windowSoftInputMode="stateHidden|adjustResize"