2011-01-09 2 views
2

Как я могу заставить клавиатуру исчезать (по коду), когда я нажимаю вне редактируемого текста, как текстовое поле в Android?Как мы можем заставить клавиатуру исчезать, если мы нажимаем вне текстового поля на Android?

+1

На устройствах iOS, щелкнув по внешнему виду, клавиатура прикреплена, чтобы она исчезла. В Android это не так. Здесь стандартное поведение говорит о том, что прикосновение к задней кнопке будет скрывать клавиатуру. –

+0

Проверьте эту ссылку http://stackoverflow.com/questions/4165414/how-to-hide-soft-keyboard-on-android-after-clicking-outside-edittext – GSree

ответ

0
public boolean OutsideTouchEvent(MotionEvent m_event) { 
    View v = getCurrentFocus(); 
    boolean value = super.dispatchTouchEvent(m_event); 
    View w = getCurrentFocus(); 
    int scrcoords[] = new int[2]; 
    w.getLocationOnScreen(scrcoords); 
    float x = m_event.getRawX() + w.getLeft() - scrcoords[0]; 
    float y = m_event.getRawY() + w.getTop() - scrcoords[1]; 

    if (m_event.getAction() == MotionEvent.ACTION_UP && (x < w.getLeft() || x >= w.getRight() || y < w.getTop() || y > w.getBottom())) { 
     InputMethodManager inputMethodManager = (InputMethodManager) YourActivity.this.getSystemService(Activity.INPUT_METHOD_SERVICE); 
     inputMethodManager.hideSoftInputFromWindow(YourActivity.this.getCurrentFocus().getWindowToken(), 0); 
    } 
    return value; 

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