2016-08-18 113 views
1

上面有三个片段,分别表示A,B和C,一个是viewpager,它包含多个片段(比如片段B)。使用viewpager在片段和片段之间切换

切换到片段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

你使用什么ViewPager适配器? – li2

+0

am使用FragmentPagerAdapter –

+0

FragmentPagerAdapter将保留所有片段,它只是销毁用户不可见的片段视图。 – li2

回答

0

FragmentPagerAdapter将保留所有的片段,它只是破坏片段的视图,其是不可见的用户,例如,如果卷动页面从1到2,则图页面0将被销毁,但页面0的实例仍将被适配器保留。

如果将limit设置为2,则可以通过调用方法ViewPager.setOffscreenPageLimit(int limit)来更改此默认行为,那么页面0的视图也将保留。

设置在空闲状态下应该保留到视图层次结构中当前页面任一侧的页数。

+0

这不是这里的情况。 –