Фокус призначений для вибору компонентів інтерфейсу користувача, коли ви використовуєте щось, крім сенсорного (наприклад, d-pad, клавіатуру тощо). Будь-який вигляд може отримати фокус, хоча деякі за умовчанням не піддаються фокусуванню. (Ви можете зробити вид setFocusable(true)
фокусуванням і змусити його фокусуватись requestFocus()
.)
Однак важливо зазначити, що коли ви перебуваєте в сенсорному режимі, фокус вимкнено . Отже, якщо ви використовуєте пальці, програмне змінення фокусу нічого не робить. Виняток для цього становлять подання, які отримують вхідні дані від редактора введення. Це EditText
такий приклад. У цій особливій ситуації setFocusableInTouchMode(true)
використовується, щоб м’яка клавіатура знала, куди надсилати введення. EditText
Має цю настройку за умовчанням. М'яка клавіатура автоматично з'явиться.
Якщо ви не хочете, щоб м'яка клавіатура вискакувала автоматично, ви можете тимчасово приглушити її, як зазначив @abeljus:
InputMethodManager inputManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);
inputManager.hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
Коли користувач натискає на EditText
, він все одно повинен показувати клавіатуру.
Подальше читання: