2015-09-10 4 views
6

Как я могу узнать, что клавиатура открыта. Обычно моя проблема в том, что если клавиатура открыта, то я вызываю только скрытие, а не всегда вызываю hide. есть ли способ проверить, открыта ли клавиатура? В настоящее время я использую этот метод, чтобы скрыть клавиатуру.Как я могу открыть клавиатуру

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

Вы проверили http://stackoverflow.com/questions/2150078/how-to-check-visibility-of-software-keyboard-in-android? – Rajesh

ответ

1

Попробуйте GlobalLayout Слушатель как:

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. 

       } 
}); 

Заменить main_layout с макетом.

+2

Почему вы копируете и вставляете ответ? вы можете просто отправить ответ link – Rajesh

+2

Я не ссылался на ваш комментарий и ссылку ... Я использовал этот код ранее в своем приложении, поэтому я поставил его здесь. –

+0

Так это работает на Зефир ??? – Pankaj

Смежные вопросы