2014-09-11 2 views
0

Приложение для Android использует педаль bluetooth для навигации по громкой связи. Педаль - AirTurn BT105 - регистрируется как аппаратная клавиатура.Android ActionBar и клавиатура Bluetooth

Я могу захватить ключи, отправленные педалью в своей деятельности, через dispatchKeyEvent(KeyEvent event), и все работает нормально.

Однако, хотя я возвращаю true, когда я перехватываю ключ, панель действий также реагирует на событие ключа. В моем ActionBar у меня есть серия ImageView s для специальных целей макета. Первый ImageView получает выделение, как будто он получает только сообщение ACTION_DOWN. Кроме того, хотя файл макета указывает, что ImageView не должен получать фокус, когда я смотрю на него через просмотр иерархии представлений, все они заявлены как настраиваемые.

Есть ли способ остановить это поведение?

Могу ли я перехватить события навигационной клавиши для окна ActionBar?

Примечание: с использованием нативного ActionBar в Android 4.4.2

ответ

1

Решения этих «проблемы», было вручную установить фокусируемое свойство при создании меню ActionBar.

1 - Получить элемент ActionView с

View v = menu.findItem(itemId).getActionView(); 

2 - После того, как сделать ваши настройки и включить или отключить его, установите фокусируемые значения

v.setFocusable(false); 
v.setFocusableInTouchMode(false); 

Когда включен пользователь будет по-прежнему иметь возможность нажимать/нажимать на виджет, и он все равно будет реагировать.

Я надеюсь, что это поможет кому-то, в конечном итоге

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