我有一个fragmentAdapter:
public class TitleAdapter extends FragmentPagerAdapter {
private final String titles[] = new String[] { "Home", "Eventi"};
private final Fragment frags[] = new Fragment[titles.length];
Context context;
public TitleAdapter(FragmentManager fm) {
super(fm);
}
@Override
public CharSequence getPageTitle(int position) {
Log.v("TitleAdapter - getPageTitle=", titles[position]);
return titles[position];
}
@Override
public Fragment getItem(int position) {
Log.v("TitleAdapter - getItem=", String.valueOf(position));
//return frags[position];
switch (position) {
case 0:
return Home.newInstance(0, "aa");
case 1:
return Eventi.newInstance(1, "bbbb");
}
return null;
}
@Override
public int getCount() {
return frags.length;
}
}
在每个片段(Home和Eventi)中我都有一个列表片段。我在logcat中看到的是,活动开始时会加载所有片段。我想做的是每次加载一个片段。该怎么做??
答案 0 :(得分:1)
很抱歉让您失望,但您无法一次只使用Android库ViewPager加载一个片段。通常,为了设置ViewPager要渲染的片段数,您可以使用此方法public void setOffscreenPageLimit (int limit)。
问题是,屏幕外页面限制的默认值和最小值是1,这意味着ViewPager将在当前所选片段的任一侧呈现并保留内存中的片段。您可能认为可以将限制设置为0,但仍然默认为1(请参阅ViewPager.setOffscreenPageLimit(0) doesn't work as expected)。
我假设你被迫提前渲染至少一个片段以确保顺利滚动。我希望这些信息有所帮助!