ViewPager 的setOffscreenPageLimit(int arg0);方法用于设置ViewPager的后台加载页面个数。
假设ViewPager中设置了3个页面
现在给参数为2,即setOffscreenPageLimit(2);那么就是3个页面全部会在第一次加载的时候被加载完成。
参数2的含义就是,除去当前显示页面以外需要被预加载的页面数。
参数最少设置为1,当给的参数小于等于1的时候,效果与给1同。
主Activity代码如下:
public class MainActivity extends FragmentActivity {
private ViewPager pager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pager = (ViewPager) findViewById(R.id.pager);
MyFragmentPagerAdapter adapter = new MyFragmentPagerAdapter(
getSupportFragmentManager(), getFragments());
pager.setAdapter(adapter);
pager.setOffscreenPageLimit(1);
}
private List<Fragment> getFragments() {
List<Fragment> fragments = new ArrayList<Fragment>();
FirstFragment first = new FirstFragment();
SecondFragment second = new SecondFragment();
ThirdFragment third = new ThirdFragment();
FourthFragment fourth = new FourthFragment();
fragments.add(first);
fragments.add(second);
fragments.add(third);
fragments.add(fourth);
return fragments;
}
class MyFragmentPagerAdapter extends FragmentPagerAdapter {
private List<Fragment> fragments;
public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> frs) {
super(fm);
this.fragments = frs;
}
@Override
public Fragment getItem(int arg0) {
return fragments.get(arg0);
}
@Override
public int getCount() {
return fragments.size();
}
}
}
在Fragment的onCreateView中设置Log代码即可用验证该方法的用法。