2015-09-10 9 views
6

W jaki sposób mogę się dowiedzieć, czy klawiatura jest otwarta. Faktycznie mój problem polega na tym, że jeśli klawiatura jest otwarta, to tylko ja wołam o ukrywanie, a nie o to, aby zawsze wywoływać ukrywanie. czy istnieje metoda sprawdzenia, czy klawiatura jest otwarta? obecnie używam tej metody do ukrywania klawiatury.Skąd wiadomo, że klawiatura jest otwarta?

EditText myEditText = (EditText) findViewById(R.id.myEditText); 
View view = this.getCurrentFocus(); 
if (view != null) {ditText) findViewById(R.id.myEditText); 
View view = this.getCurrentFocus(); 
if (view != null) { Inp` 
im.hideSoftInputFromWindow(view.getWindowToken(), 0); 
+2

Czy masz sprawdzić http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android? – Rajesh

Odpowiedz

1

Spróbuj GlobalLayout Listener jak:

main_layout.getViewTreeObserver().addOnGlobalLayoutListener(
     new OnGlobalLayoutListener() { 
      @Override 
      public void onGlobalLayout() 
       { 

        Rect r = new Rect(); 
        // r will be populated with the coordinates of your view 
        // that area still visible. 
        main_layout.getWindowVisibleDisplayFrame(r); 

        int heightDiff = main_layout.getRootView().getHeight()-(r.bottom -r.top);  
        //if(hightDiff>100) --> It may be keyboard. 

       } 
}); 

Wymień main_layout z układu.

+2

dlaczego kopiujesz i wklejasz odpowiedź? możesz po prostu opublikować link do odpowiedzi – Rajesh

+2

Nie odwołałem twojego komentarza i linku ... Użyłem tego kodu wcześniej w mojej aplikacji, więc umieściłem go tutaj. –

+0

Czy to działa na Marshmallow ??? – Pankaj

Powiązane problemy