我有三个片段,分别是A,B和C,一个是viewpager,它包含多个片段(比如B片段)。
切换到片段b时会在移动到其他片段并返回片段b之后呈现片段viewpager内容,此处它将重新加载内容。
我只是想在渲染片段后停止销毁?
先谢谢。
适配器的示例代码:
public class QuestionsSortPagerAdapter extends FragmentPagerAdapter {
int mNumOfTabs;
public QuestionsSortPagerAdapter(FragmentManager fm, int NumOfTabs) {
super(fm);
this.mNumOfTabs = NumOfTabs;
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
QuestionsSortByVotes byVotes = new QuestionsSortByVotes();
return byVotes;
case 1:
QuestionsSortByActivity byActivity = new QuestionsSortByActivity();
return byActivity;
case 2:
QuestionsSortByHot byHot = new QuestionsSortByHot();
return byHot;
case 3:
QuestionsSortByDate byDate = new QuestionsSortByDate();
return byDate;
case 4:
QuestionsSortByMonth byMonth = new QuestionsSortByMonth();
return byMonth;
default:
return null;
}
答案 0 :(得分:0)
FragmentPagerAdapter将保留所有片段,它只会破坏用户不可见的片段视图,例如,如果您将页面从1滚动到2,那么第0页的视图将被销毁,但是第0页的实例仍然会被适配器保留。
您可以通过调用方法ViewPager.setOffscreenPageLimit(int limit)
来更改此默认行为,如果将limit
设置为2,则还会保留第0页的视图。
设置在空闲状态下视图层次结构中应保留到当前页面任一侧的页数。