Android onBackPressed не запускается, когда SearchView активен

#android #searchview #onbackpressed

#Android #searchview #onbackpressed

Вопрос:

В моем приложении есть два вида поиска, один под другим. Когда я разворачиваю два вида поиска и пытаюсь закрыть SearchViews, нажав на кнопку возврата устройства. Затем курсор перемещается со второго вида поиска на первый и с первого вида поиска на второй всегда. Но onBackPressed не запускается вообще.

 override fun onBackPressed() {
        if (!searchViewOne.isIconified) { // It is not triggering here on back press
         // TODO something here
        }
}
  

Проблема: onBackPressed не запускается, когда SearchViews активны

Ожидание: хотите закрыть оба SearchViews onBackPressed

Примечание: это происходит только в ОС Android 6.0 (API <= 23) и ниже. Выше 6.0 он работает так, как ожидалось.

Есть идеи, как это исправить?

Комментарии:

1. как вы запускаете событие onbackpress?

2. @WahdatKashmiri обновил мой вопрос

3. как насчет использования onActionViewCollapsed();? developer.android.com/reference/android/widget /…

4. @ST Проблема заключается в том, что пользователь нажимает на кнопку возврата устройства. В этом случае это не сработает

Ответ №1:

Итак, я исправил это, введя isFocusable false в init поисковые представления.

 searchViewOne.isFocusable = false
searchViewTwo.isFocusable = false
  

Теперь onBackPress запускается, и проблема решена.