2013-02-04 16 views
9

Po zmianie fragmentów. Używam tego, aby zamknąć klawiaturę, ponieważ na ekranie jest pole EditText. Po prostu czuję, że musi być lepszy sposób, ale nie znalazłem niczego na temat wykrycia, czy klawiatura jest na ekranie.Android Ukryj klawiaturę podczas zmiany fragmentów

Activity activity = getActivity(); 
InputMethodManager inputMethodManager = (InputMethodManager) activity.getSystemService(Activity.INPUT_METHOD_SERVICE); 
try 
{ 
    inputMethodManager.hideSoftInputFromWindow(activity.getCurrentFocus().getWindowToken(), 0); 
} 
catch (Exception e) 
{ 

} 
+0

Trudno wykryć klawiaturę, API naprawdę tylko pozwala wywołać klawiaturę. –

Odpowiedz

0

Jedynym sposobem mogę myśleć jest za pomocą metody onConfigurationChanged(Configuration config):

Kombinacja KeyboardHidden i Configuration powinno wystarczyć.

class MyFrag extends Fragment{ 

    @Override 
    public void onConfigurationChanged(Configuration config){ 
    //Check flags 
    switch(config.keyboardHidden){ 
     case KEYBOARDHIDDEN_NO: 
     // do something 
     break; 
     case KEYBOARDHIDDEN_YES: 
     break; 
    } 
    } 

} 

To oczywiście opiera się na konieczności manifestu i nadrzędną aktywność przyjąć je jako zmiany config:

<activity ... 
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout"/> 

także będziesz pamiętać, że Activity ma taką samą metodę przeciążać, aktywność dostanie najpierw metodę, a następnie przekaż ją do załączonych Fragment s.

Dla uważnych można to zrobić w locie przy użyciu kontekstu:

Configuration config = getResources().getConfiguration(); 

nadzieję, że pomaga, to znaczy wziąć pod hardKeyboards rachunków, jak również, ale jestem pewien, że napotkasz jakiegoś urządzenia określonego pluskwa!

3

W działalności gdzie realizacji powołania do różnych fragmentów, umieścić następujące ...

InputMethodManager imm = (InputMethodManager)this.getSystemService(Context.INPUT_METHOD_SERVICE); 
    imm.hideSoftInputFromWindow(getWindow().getDecorView().getWindowToken(), 0); 
Powiązane problemy