У меня есть фрагмент пейджер, который страницы между экземплярами одного и того же Fragment
.Помимо этих фрагментов, функция поиска реализована через SearchView
на панели приложений.Пользователь должен иметь возможность искать индивидуально в каждом из этих фрагментов.
Функция поиска фильтрует ArrayList
, который отображает текущие элементы.Большинство функций фильтра поиска работают должным образом, но я сталкиваюсь с этой проблемой:
Когда пользователь выполняет поиск, а затем переходит на следующую страницу, панель поиска (как и ожидалось) исчезает, но клавиатура остаетсяна экране.Это означает, что поиск не был правильно очищен и отменен.Возвращение к предыдущему виду также показывает, что фильтр все еще активен.Пользователю необходимо перезапустить процесс поиска и затем отменить его, чтобы снова правильно просмотреть список.
Проблема продемонстрирована в этом видео .
Какие способы обойтиЭта проблема?В настоящее время я думаю о двух вариантах:
1 - при смене страницы, очистите функцию поиска
Это работает, но не избавляется автоматически отклавиатура и не решает другие проблемы, такие как переключение на другую Activity
во время поиска.
2 - выяснить способ уведомления об отмене поиска
Это было бы оптимальным способом, но я не понял, как это сделать.К сожалению, SearchView
OnCloseListener
реагирует только на обычный способ закрытия SearchView
, поэтому я не могу его использовать.
Заранее спасибо за вашу помощь, я с нетерпением ждуваши предложения.