Ukryj klawiaturę podczas przechodzenia od fragmentu do innego

Mam Fragment, który zawiera tekst edycji. Po naciśnięciu tekstu edycji wyświetlana jest klawiatura. Po naciśnięciu przycisku Zapisz w górnym rogu aplikacja powróci do poprzedniego fragmentu, ale klawiatura nadal będzie działać.

Chciałbym, aby klawiatura była ukryta podczas przechodzenia do poprzedniego fragmentu.

Proszę zauważyć, że próbowałem tego rozwiązania: Zamknij / Ukryj miękką klawiaturę Androida .

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

Próbowałem użyć tego w obu fragmentach, w metoda onkologiczna.

Próbowałem też ukryć miękką klawiaturę w układzie:

android:windowSoftInputMode="stateAlwaysHidden"
Niestety żaden z nich nie zadziałał.

Zamieściłbym kilka zdjęć, ale nie mam jeszcze wystarczającej reputacji. Byłbym wdzięczny za konstruktywną pomoc i opinię i nie zapominaj, że " mądry człowiek może nauczyć się więcej z głupiego pytania niż głupiec może nauczyć się mądrej odpowiedzi." :)

Pozdrawiam, Alexandra

Author: Community, 2014-11-13

2 answers

Umieść kod, który ukrywa klawiaturę w" save button " kliknij listener i użyj tej metody, aby ukryć klawiaturę:

    public static void hideKeyboard(Activity activity) {
        InputMethodManager inputManager = (InputMethodManager) activity
        .getSystemService(Context.INPUT_METHOD_SERVICE);

        // check if no view has focus:
         View currentFocusedView = activity.getCurrentFocus();
         if (currentFocusedView != null) {
             inputManager.hideSoftInputFromWindow(currentFocusedView.getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
         }
     }
 79
Author: Silvia H,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-05 08:39:32

Najprostszy sposób ukrycia klawiatury w fragmencie lub aktywności

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);
}

Rozwiązanie: 2

    InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
    inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(), 0);
 2
Author: chand becse,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-02-09 09:50:48