解决viewpager的预加载

viewpager的预加载是很烦人的 因此为了解决这个预加载找了很多方案,在github上面有自定义viewpager实现它的懒加载,我感觉还是挺复杂的,为此我看了一下viewpager的源码,如下

/**
 * Set the number of pages that should be retained to either side of the
 * current page in the view hierarchy in an idle state. Pages beyond this
 * limit will be recreated from the adapter when needed.
 *
 * 

This is offered as an optimization. If you know in advance the number * of pages you will need to support or have lazy-loading mechanisms in place * on your pages, tweaking this setting can have benefits in perceived smoothness * of paging animations and interaction. If you have a small number of pages (3-4) * that you can keep active all at once, less time will be spent in layout for * newly created view subtrees as the user pages back and forth.

* *

You should keep this limit low, especially if your pages have complex layouts. * This setting defaults to 1.

* * @param limit How many pages will be kept offscreen in an idle state. */ 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(); } }
这上面说如果保持懒加载的话 至少需要给这个limit设置3或者4为此 这个解决方案出来了 

vpMain.setOffscreenPageLimit(5);
即可解决预加载

你可能感兴趣的:(解决viewpager的预加载)