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?

14voto

Suresh Pattu Punkte 5706

Das hier hat bei mir funktioniert

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

14voto

ChaturaM Punkte 1467

Um dies programmatisch in einem Fragment zu tun, können Sie folgenden Code verwenden

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

Platzieren Sie dies in onResume()

11voto

Petro Punkte 3010

Für zukünftige Leser.

Ich wollte diese Angelegenheit genau kontrollieren, also habe ich Folgendes getan:

Aus einem Fragment oder einer Aktivität, Ihre anderen Ansichten ausblenden (die nicht benötigt werden, solange die Tastatur in Betrieb ist), sie dann wiederherstellen 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);

                    }
                }
            });

11voto

Sravani Punkte 518

Es muss nur eine einzige Zeile hinzugefügt werden...

hinzufügen android:windowSoftInputMode="stateHidden|adjustPan" in der gewünschten Tätigkeit Ihres manifest file .

Ich habe gerade eine Lösung gefunden :) :)

9voto

Bis jetzt haben mir die Antworten nicht geholfen, da ich eine Schaltfläche und ein textInput-Feld (nebeneinander) unter der textView habe, die immer von der Tastatur verdeckt werden, aber dies hat mein Problem gelöst:

android:windowSoftInputMode="adjustResize"

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