Intereting Posts
F # на Mono для Android Инструкции Android при открытии приложения в первый раз? Использование пользовательского поведения для создания нескольких «опорных точек» / позиций для CollapsingToolbar Почему при выполнении AsyncTask приложение всегда принудительно останавливает? Внедрение и аннулирование уведомления об аннулировании Можно ли воспроизводить музыку во время звонков, чтобы партнер мог ее услышать? Android Меню раздувает вызовы несколько раз на фрагменте onCreateOptionsMenu BroadcastReceiver на android.net.conn.CONNECTIVITY_CHANGE называется несколько раз Как создать полноэкранный диалог с дизайном материалов? Играть в Midi notes (not files) в android Проверка статуса AsyncTask с другого действия Android: как сдвинуть высоту выходного звука (в реальном времени) NetworkStatsManager.queryDetailsForUid не получает «одинаковые» значения, такие как TrafficStats Массив Список объектов с помощью намерений Передайте один параметр в HttpGet Tornado с несколькими параметрами

Android RecyclerView, который находится во Фрагменте, который находится в ViewPager, не перезагружает / обновляет представления, если установлено setOffscreenPageLimit

У меня есть RecyclerView в Fragment который снова находится в ViewPager , когда я ViewPager между страницами ViewPager , я вижу, что onDetach of Fragment , но по какой-то причине RecyclerView по-прежнему присутствует в этой конкретной позиции для Fragment в ViewPager , Положение прокрутки RecyclerView сохраняется, когда я возвращаюсь к отдельному фрагменту.

Я использую FragmentStatePagerAdapter для ViewPager и я возвращаю POSITION_NONE из getItemPosition() но это не имеет никакого эффекта.

Пожалуйста, помогите мне понять проблему здесь.

Попробуйте это.

1) MyAdapter extends FragmentStatePagerAdapter

2) Установите Adapter из фрагмента с помощью getChildFragmentManager() например: mViewPager.setAdapter(new MyAdapter(getChildFragmentManager(), getActivity(), this))

3) Из метода ViewPagerFrgment Override setUserVisibleHint

 @Override public void setUserVisibleHint(boolean isVisibleToUser) { super.setUserVisibleHint(isVisibleToUser); if (isVisibleToUser) { //Update Recyclerview } else { } } 

Это потому, что viewpager использует кэширование mecanism. Прочитайте эту статью:

http://doublenegative.com/fragment-state-restoration-and-the-fragmentstatepageradapter/

FragmentStatePagerAdapter сохраняет состояние и уничтожает фрагменты; Он также восстанавливает состояние, когда фрагменты воссоздаются, что восстанавливает состояние recycleview (положение прокрутки).

От конечного пользователя это то же поведение, что и использование FragmentPageAdapter который сохраняет фрагменты в памяти.

Это нормальное и обычно желаемое поведение.