У меня есть одно приложение активности, которое сосредоточено вокруг фрагмента, который будет перечислять данные из онлайн API.Я использую один и тот же фрагмент в приложении, фильтруя данные по мере необходимости.
Фильтрация выполняется путем передачи параметров через Factory в DataSource.Все это прекрасно работает, если у меня загружен только один фрагмент.Я могу хорошо фильтровать и искать.
Проблемы начинаются при попытке загрузить несколько фрагментов в ViewPager.Например, Фрагмент A - фильтруется для отображения активных элементов. Фрагмент B - фильтруется для отображения элементов с истекшим сроком. Оба должны отображаться в ViewPager с использованием FragmentPagerAdapter.Когда я запускаю приложение, оба Фрагмента будут отфильтрованы для просроченных элементов (последний фрагмент добавлен в viewpager). Кажется, параметры, которые Фрагмент A, установленный в DataSource, немедленно перезаписываются Фрагментом B. Фрагмент loadInitial работает, как и должно, но loadAfter используетпараметры из фрагмента B.
также должны помнить, что если я аннулирую () источник данных, он возвращает правильные отфильтрованные данные без проблем.(поэтому при загрузке мои параметры перезаписываются, а loadAfter использует неверный параметр)
Пробовал связываться с Обозревателем с помощью getViewLifecycleOwner (), пытаясь выяснить, правильно ли я называю DataSource, - это пробовал различные ViewPagerАдаптеры FragmentStatePagerAdapter и FragmentPagerAdapter.
Все проверки показывают, что DataSource получает правильный параметр, а затем почти сразу же перезаписывают его.
Так что вопрос в том, является ли вызов PageKeyedDataSource не уникальным для фрагмента, вызывающего его?Почему мои переменные перезаписываются другим фрагментом.
Может кто-нибудь сказать, где я должен искать решение этой проблемы.
Примечание: у меня есть три фрагмента, загруженных с использованием FragmentStatePagerAdapter, из которых 2 из 3 являютсяОдин и тот же фрагмент. Вызывается с разными параметрами.Он работает нормально, потому что с тремя загруженными фрагментами FragmentStatePagerAdapter, по-видимому, не инициализирует 3-й фрагмент до тех пор, пока все не будет загружено, поэтому он не отключится по другому фрагменту.