片段寻呼机适配器和寻呼机视图在后台加载下一个片段

时间:2013-08-29 11:02:45

标签: android android-fragments android-fragmentactivity android-pageradapter

我正在使用Fragment Pager Adapter和PagerView来创建滑动选项卡。  但面临一些问题。

这是我的:-ViewPagerAdapter

显示第一个片段并显示第二个片段对话框  框(在后台加载数据)。当我滑到第二个  片段它加载第三个片段对话框并在后台加载数据。

public class ViewPagerAdapter extends FragmentPagerAdapter {
  private Context _context;

  public ViewPagerAdapter(Context context, FragmentManager fm) {
      super(fm);
      _context = context;

  }

  @Override
  public Fragment getItem(int position) {
      Fragment f = new Fragment();
      switch (position) {
      case 0:
          f = ReservationTab.newInstance(_context);
          break;
      case 1:
          f = GalleryTab.newInstance(_context);
          break;
      case 2:
          f = VideoTab.newInstance(_context);
          break;
      }
      return f;
  }

  @Override
  public int getCount() {
      return 3;
  }

}

从这里访问: -

private void setUpView() {
    _mViewPager = (ViewPager) findViewById(R.id.viewPager);
    _adapter = new ViewPagerAdapter(getApplicationContext(),
            getSupportFragmentManager());
    _mViewPager.setAdapter(_adapter);
    _mViewPager.setCurrentItem(0);
}

private void setTab() {
    _mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

        @Override
        public void onPageScrollStateChanged(int position) {
        }

        @Override
        public void onPageScrolled(int arg0, float arg1, int arg2) {
        }

        @Override
        public void onPageSelected(int position) {
            // TODO Auto-generated method stub
            System.out.println("PRINT position--  " + position);
            switch (position) {
            case 0:
                first_tab.setVisibility(View.VISIBLE);
                second_tab.setVisibility(View.INVISIBLE);
                third_tab.setVisibility(View.INVISIBLE);
                break;

            case 1:
                first_tab.setVisibility(View.INVISIBLE);
                second_tab.setVisibility(View.VISIBLE);
                third_tab.setVisibility(View.INVISIBLE);
                break;
            case 2:
                first_tab.setVisibility(View.INVISIBLE);
                second_tab.setVisibility(View.INVISIBLE);
                third_tab.setVisibility(View.VISIBLE);
                break;
            }
        }

    });

}

@Override
public void onTabChanged(String arg0) {
    // TODO Auto-generated method stub


}

1 个答案:

答案 0 :(得分:1)

这是预期的行为。

如果您不希望ViewPager在后台加载下一个片段,您应该调用setOffscreenPageLimit(0)。

另见http://developer.android.com/reference/android/support/v4/view/ViewPager.html#setOffscreenPageLimit%28int%29