Android RecyclerView, das sich in einem Fragment befindet, das sich in einem ViewPager befindet, lädt keine Ansichten neu, wenn setOffscreenPageLimit erreicht ist

9

Ich habe ein RecyclerView in einem Fragment welches wiederum in einem ViewPager ist, wenn ich zwischen ViewPager Seiten wische, sehe ich, dass onDetach von Fragment aufgerufen wird, aber aus irgendeinem Grund RecyclerView ist immer noch in dieser bestimmten Position für die Fragment in ViewPager vorhanden, selbst die Bildlaufposition von RecyclerView wird beibehalten, wenn ich zu dem gelösten Fragment zurückkomme.

Ich verwende FragmentStatePagerAdapter für ViewPager und ich gebe POSITION_NONE von getItemPosition() zurück, aber es hat keine Wirkung.

Bitte helfen Sie mir, das Problem hier zu verstehen.

    
Arif Nadeem 27.07.2015, 12:42
quelle

3 Antworten

1

Versuche diese Punkte.

1) MyAdapter extends FragmentStatePagerAdapter

2) Setze Adapter aus Fragment mit getChildFragmentManager() zB: mViewPager.setAdapter(new MyAdapter(getChildFragmentManager(), getActivity(), this))

3) Aus ViewpagerFrment Override setUserVisibleHint method

%Vor%     
OMAK 14.09.2015 06:28
quelle
0

Das liegt daran, dass Viewpager einen Caching-Mechanismus verwendet. Lesen Sie diesen Artikel:

Ссылка

    
Bourdier Jonathan 11.09.2015 14:03
quelle
0

FragmentStatePagerAdapter speichert den Zustand und zerstört die Fragmente; Es stellt auch den Zustand wieder her, wenn Fragmente neu erstellt werden, wodurch der Status der Recycleansicht wiederhergestellt wird (die Scrollposition).

Vom Endbenutzer ist es dasselbe Verhalten wie die Verwendung von FragmentPageAdapter , die Fragmente im Speicher hält.

Es ist das normale und normalerweise gewünschte Verhalten.

    
ciprian 13.09.2015 05:20
quelle