2013-10-15 3 views
1

я переместил весь макет моей страницы на 250, когда пользователь вводит на два полях EditText, и мне нужно срать его обратно, когда клавиатура распущена, я использовалОтключить кнопку назад, когда Мягкая клавиатура всплывает, Android

общественного класса DoneOnEditorActionListener реализует OnEditorActionListener {

@Override 
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { 
    // TODO Auto-generated method stub 
    try{ 
     if (actionId == EditorInfo.IME_ACTION_DONE 
       || actionId == EditorInfo.IME_NULL 
       || event.getKeyCode() == KeyEvent.KEYCODE_ENTER) { 
      InputMethodManager imm = (InputMethodManager)v.getContext().getSystemService(Context.INPUT_METHOD_SERVICE); 
      imm.hideSoftInputFromWindow(v.getWindowToken(), 0); 

      LoginActivity.rootView.setY(0); 
      return true;  
     } 
    }catch (Exception e){ 

    } 

    return false; 
} 

} и это работает отлично, но когда я нажимаю кнопку назад, клавиатура также отклонил и раскладка не сдвигается назад. Есть ли способ отключить кнопку «Назад» только тогда, когда мягкая клавиатура поднята?

ответ

1

установить переменную, когда мягкая клавиатура вставлена ​​(how to check visibility of software keyboard in android?), и проверьте ее в своем переопределенном методе onBackPressed(). Если клавиатура встала, ничего не делать, иначе вызовите супер-метод.

private boolean isKeyboardUp;

@Override 
public void onBackPressed() 
    { 
     if(isKeyboardUp) 
      //do nothing 
     else 
      super.onBackPressed(); 
    } 
Смежные вопросы