2014-11-13 23 views
26

Ich habe ein Fragment, das einen Text bearbeiten enthält. Wenn der Edit-Text gedrückt wird, wird die Tastatur angezeigt. Wenn Sie auf die Schaltfläche Speichern in der oberen Ecke klicken, kehrt die Anwendung zum vorherigen Fragment zurück, die Tastatur bleibt jedoch bestehen.Tastatur beim Navigieren von einem Fragment zu einem anderen ausblenden

Ich möchte, dass die Tastatur beim Navigieren zum vorherigen Fragment ausgeblendet wird.

Bitte beachten Sie, dass ich diese Lösung versucht habe: Close/hide the Android Soft Keyboard.

Ich habe versucht, dies in beiden Fragmenten zu verwenden, in der onCreate-Methode.

Ich habe auch versucht die Soft-Tastatur im Layout zu verbergen:

android:windowSoftInputMode="stateAlwaysHidden" 

Nichts davon gearbeitet, leider.

Ich hätte ein paar Bilder gepostet, aber ich habe noch nicht genug Reputation. Ich würde jede konstruktive Hilfe und Meinung schätzen und nicht vergessen, dass "Ein weiser Mann mehr von einer dummen Frage lernen kann, als ein Narr von einer weisen Antwort lernen kann." :)

Grüße, Alexandra

+0

Was ist myView? – Carnal

+0

Es ist ein gewöhnlicher Text bearbeiten. Genau wie in der Lösung. –

+0

Versuchen Sie es mit getView() (Methode aus Fragment) – Carnal

Antwort

76

den Code setzen, die die Tastatur versteckt sich in Ihrem "Speichern-Button" Hörer klicken, und verwenden Sie diese Methode, um die Tastatur zu verstecken:

+1

Setzen Sie diesen Code in eine öffentliche Klasse und dann können Sie es mit einer Zeile von was auch immer fragment es braucht aufrufen. Good stuff - seit Jahren auf der Suche nach diesem – DaveSav

+0

beste Antwort (y) –

2

Der einfachste Weg, sich zu verstecken Tastatur im Fragment oder Aktivität

Soluton: 1

//hide keyboard 
public static void hideKeyboard(Context ctx) { 
    InputMethodManager inputManager = (InputMethodManager) ctx 
      .getSystemService(Context.INPUT_METHOD_SERVICE); 

    // check if no view has focus: 
    View v = ((Activity) ctx).getCurrentFocus(); 
    if (v == null) 
     return; 

    inputManager.hideSoftInputFromWindow(v.getWindowToken(), 0); 
} 

Lösung: 2

InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); 
    inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0); 
Verwandte Themen