7 Stimmen

Wie kann man erzwingen, dass die Tastatur nach der Anzeige mit SHOW_FORCED entfernt wird?

Ich zeige Tastatur mit Code

        ((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE))
                .toggleSoftInput(InputMethodManager.SHOW_FORCED,
                        InputMethodManager.HIDE_IMPLICIT_ONLY);
        etContent.requestFocus();

Im nächsten Schritt blase ich ein neues LinearLayout auf und rufe setContentView(newLayout) auf und die Tastatur ist immer noch da. Wie kann man das Entfernen der Tastatur erzwingen? Ich habe es versucht mit

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

aber es hat nicht geholfen. Kann mir jemand eine Lösung vorschlagen?

0 Stimmen

Überprüfen Sie diese Antwort -> stackoverflow.com/questions/6647008/

7voto

JoeLallouz Punkte 1318

Probieren Sie es aus. Ich habe damit schon mehrmals die weiche Eingabe ausgeblendet.

getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getContentView().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);

0 Stimmen

+1 von mir, danke. Falls Sie zufällig diesen Kommentar sehen: Wissen Sie, warum die setSoftInputMode() allein manchmal funktioniert und manchmal nicht?

1 Stimmen

Ich bin mir nicht 100%ig sicher, aber ich vermute, dass es Standardwerte für die Methode gibt, wenn Sie keine Argumente übergeben.

1 Stimmen

Diese Antwort ist sehr hilfreich, aber getContentView() ist in meiner Aktivität nicht gelöst, also ersetze ich dies einfach durch getWindow().getDecorView() . Jetzt funktioniert es bei mir perfekt :)

1voto

koder Punkte 434

Versuchen Sie dies, es sollte funktionieren

InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(getContentView().getWindowToken(), 0);

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