Я недавно преобразовал свое приложение из использования Activites и TabHost в использование Fragments и ViewPager из библиотеки Android Compat для API v4. Мне удалось исправить / решить большинство проблем, но я не могу сохранить прежнее поведение с фильтрацией текста в ListViews с использованиемsetTextFilterEnabled
метод.
My ViewPagerAdapter
содержит фрагменты, каждый из которых имеет ListView
.Когда пользователи пролистывают ViewPager
, я бы хотел, чтобы в настоящее время активный ListView фрагмента фильтровал текст по типу пользователя, точно так же, как я мог делать с моделью TabHost-Activity.В настоящее время похоже, что ListView первого фрагмента будет корректно реагировать, но если я проведу пальцем к следующему фрагменту и попытаюсь отфильтровать его ListView, фильтрация все равно будет применяться к первому.Если я проведу мимо первых двух, а затем отфильтрую, результаты будут недетерминированными.Текущий активный фрагмент никогда не будет применять фильтр.Иногда соседний фрагмент будет, иногда - нет.
Я попытался исправить это, добавив пользовательские обратные вызовы, которые позволяют мне отслеживать, какой фрагмент в настоящее время виден, а какой скрыт.Когда фрагмент становится видимым в качестве основного фрагмента ViewPager, я устанавливаю setTextFilterEnabled
в его ListView равным true
, а всем остальным - false
.Похоже, это совсем не помогло (я убедился, что правильно переключал флаг для нужных фрагментов).
Я подозреваю, что для этого требуется более глубокая интеграция с ViewPager, но я не могу понять, что мне нужно для подключения.Любые идеи о том, как я могу сделать эту работу?Я счастлив, если понадобится код ACL.