you can change the page memory limit of ViewPAger to
viewPager.setOffscreenPageLimit(0);
deafult is 1, so one fragment / view on the left and right will remain in memory.
BUT, but this is bad practice, viewPager supports one fragment / view on each side for better performance and smooth and immediate scrolling. I suggest you create a listener for ViewPagerthat starts the animation when scrolling to the desired fragment (without starting the animation in onCreateView). check ViewPager.OnPageChangeListener , especially the methodonPageSelected(int position)
edit: Google recognizes that parameter 0 for the restriction is weak, in the latest versions of logcat says:
Requested offscreen page limit 0 too small; defaulting to 1
, . , , , ( Google). ViewPager
public void setOffscreenPageLimit(int limit) {
if (limit < DEFAULT_OFFSCREEN_PAGES) {
Log.w(TAG, "Requested offscreen page limit " + limit + " too small; defaulting to " +
DEFAULT_OFFSCREEN_PAGES);
limit = DEFAULT_OFFSCREEN_PAGES;
}
if (limit != mOffscreenPageLimit) {
mOffscreenPageLimit = limit;
populate();
}
}
ViewPager DEFAULT_OFFSCREEN_PAGES mOffscreenPageLimit populate();, Reflections, smth,
Field f = ViewPager.class.getDeclaredField("DEFAULT_OFFSCREEN_PAGES");
f.setAccessible(true);
f.setInt(viewPager, 0);
setOffscreenPageLimit(0);