查看页面指示器片段加载时只是单击或滑动,而不是加载所有片段



我使用viewpagerindicator,并且有6个片段与来自服务器的自定义列表视图。启动时,此活动看起来所有片段都在加载。我希望当片段启动刚刚打开、单击或滑动并加载时。尚未打开的片段将在打开时加载,稍后单击或滑动。怎么回事?

这是我的代码适配器视图页

import android.content.Context;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
public class ViewAdapter extends FragmentPagerAdapter{
    private Context _context;
    String[] page_titles;
    public ViewAdapter(Context context, FragmentManager fm, String[] page_title){
        super(fm);
        _context = context;
        this.page_titles = page_title;
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub
        Fragment f = new Fragment();
        switch(position){
        case 0:
            f = ContentActivity.newInstance(_context);
            break;
        case 1:
            f = ContentActivity.newInstance(_context);
            break;
        case 2:
            f = ContentActivity.newInstance(_context);
            break;
             case 3:
            f = ContentActivity.newInstance(_context);
            break;
        case 4:
            f = ContentActivity.newInstance(_context);
            break;
                    case 5:
            f = ContentActivity.newInstance(_context);
            break;
        }
        return f;
    }
    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return page_titles.length;
    }
    public CharSequence getPageTitle(int position) {
        return page_titles[position];
    }

}

我已设置

pager = (ViewPager) findViewById(R.id.pager); 
pager.setOffscreenPageLimit(1);
但是如果我从片段 0 滑动到片段索引 1,然后向后滑动到索引 0 或其他索引,总是重新加载

内容,我想让如果向后滑动到上一个片段不再重新加载?

谢谢。。。对不起我的英语..

在适配器构造函数中创建一个片段数组,然后从getItem 返回已经创建的片段

   Fragment[] f=new Fragment[6];
   public ViewAdapter(Context context, FragmentManager fm, String[] page_title){
        super(fm);
        _context = context;
        this.page_titles = page_title;
            f[0] = ContentActivity.newInstance(_context);
            f[1] = ContentActivity.newInstance(_context);
            f[2] = ContentActivity.newInstance(_context);
            f[3] = ContentActivity.newInstance(_context);
            f[4] = ContentActivity.newInstance(_context);
            f[5] = ContentActivity.newInstance(_context);
    }

    @Override
    public Fragment getItem(int position) {
        // TODO Auto-generated method stub
        return f[position];
    }

最新更新