У меня есть android.support.v7.widget.SearchView, живущий на моей панели инструментов AppCompat.
Я нажимаю кнопку «Поиск», чтобы развернуть ActionView MenuItem, и все в порядке, пока я не нажму аппаратную кнопку «Назад» на устройстве. Это скроет клавиатуру, и EditText SearchView потеряет фокус, и его курсор исчезнет, но элемент не сворачивается обратно к значку поиска. Вместо этого пункт меню справа от значка поиска становится сфокусированным/выделенным, что... неправильно. Повторное нажатие не помогает.
Я пытался определить клавишу возврата различными способами, например, добавив OnKeyListener либо в SearchView, либо в его EditText, но он не срабатывает. Нажатие кнопки «Вверх» на панели действий делает именно то, что мне нужно, поэтому мне просто нужно обнаружить кнопку «Назад».
Единственное, что странно в моей настройке, это то, что самого SearchView нет в макете - если я добавлю его, он успешно строится, но падает во время выполнения. По какой-то причине.
У меня есть слушатель для развертывания/свертывания, свертывание обнаруживается только при нажатии кнопки «Вверх», оно не срабатывает при нажатии кнопки «Назад».
Спасибо
Вот мой код настройки SearchView:
MenuItemCompat.setShowAsAction(menuItem, MenuItem.SHOW_AS_ACTION_ALWAYS | MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
final SearchView searchView = new MyobSearchView(activity);
MenuItemCompat.setActionView(menuItem, searchView);
MenuItemCompat.setOnActionExpandListener(menuItem, new FocusSearchFieldActionExpandListener(searchView, androidUtils));