Java ViewPager使用FragmentPagerAdapter仅显示6个子片段中的2个

Java ViewPager使用FragmentPagerAdapter仅显示6个子片段中的2个,java,android,android-fragments,android-viewpager,fragmentpageradapter,Java,Android,Android Fragments,Android Viewpager,Fragmentpageradapter,我的应用程序使用2个相同的viewpager,其中6个片段中的每一个都包含6个图像 leftViewPager的OnPageChangeListener滑动用于控制rightViewPager 当我浏览6个leftViewpager片段时,rightViewpager只是在前2个片段之间来回旋转 我知道这是因为Android在viewPager中加载了当前和下一个片段,但是当我手动滑动rightViewpager以检查所有6个片段时 所以问题是:如何通过滑动Vp1获得Vp2中的所有6个片段?

我的应用程序使用2个相同的viewpager,其中6个片段中的每一个都包含6个图像

leftViewPager的OnPageChangeListener滑动用于控制rightViewPager

当我浏览6个leftViewpager片段时,rightViewpager只是在前2个片段之间来回旋转

我知道这是因为Android在viewPager中加载了当前和下一个片段,但是当我手动滑动rightViewpager以检查所有6个片段时

所以问题是:如何通过滑动Vp1获得Vp2中的所有6个片段??正如层次结构查看器仅显示2个片段一样。或者我需要一些特殊的技巧来重复使用/回收这两个碎片

MyAdapter使用

public class SecondPageAdapter extends FragmentPagerAdapter  {


public SecondPageAdapter(FragmentManager fm) {
    super(fm);
    // TODO Auto-generated constructor stub
}

@Override
public int getCount() {
    // Return how many Fragment's attached on View Pager
    return 6;
}

@Override
public Fragment getItem(int position) {
    Log.i("First", "postion="+position);
    switch (position) {
    case 0: // Fragment # 0 - This will show FirstFragment
        return Fragment1.init(position);
    case 1: // Fragment # 1 - This will show SecondFragment
        return Fragment2.init(position);
    case 2: // Fragment # 0 - This will show FirstFragment
        return Fragment3.init(position);
    case 3: // Fragment # 1 - This will show SecondFragment
        return Fragment4.init(position);
    case 4: // Fragment # 0 - This will show FirstFragment
        return Fragment5.init(position);
    case 5: // Fragment # 1 - This will show SecondFragment
        return Fragment6.init(position);
    default:// Fragment # default - Will show FirstFragment
        return null;
    }
}


public int getItemPosition(Object object) {
    return POSITION_NONE;
}



@Override
public Parcelable saveState() {
    // TODO Auto-generated method stub
    return super.saveState();

}

@Override
public void notifyDataSetChanged() {
    // TODO Auto-generated method stub
    super.notifyDataSetChanged();
    Log.d("DataSetChanged", "notifyDataSetChanged=");
}

}

在您的FragmentPagerAdapter中,返回要显示的页数

我已经这样做了。在这篇文章中看到动画的gif链接,你会看到它正在工作,但不是通过在PageChangeListener上滑动LeftHandViewPager。我怀疑这需要一些更强大的诡计!所以你想从左扫寻呼机处理右扫寻呼机
public class SecondPageAdapter extends FragmentPagerAdapter  {


public SecondPageAdapter(FragmentManager fm) {
    super(fm);
    // TODO Auto-generated constructor stub
}

@Override
public int getCount() {
    // Return how many Fragment's attached on View Pager
    return 6;
}

@Override
public Fragment getItem(int position) {
    Log.i("First", "postion="+position);
    switch (position) {
    case 0: // Fragment # 0 - This will show FirstFragment
        return Fragment1.init(position);
    case 1: // Fragment # 1 - This will show SecondFragment
        return Fragment2.init(position);
    case 2: // Fragment # 0 - This will show FirstFragment
        return Fragment3.init(position);
    case 3: // Fragment # 1 - This will show SecondFragment
        return Fragment4.init(position);
    case 4: // Fragment # 0 - This will show FirstFragment
        return Fragment5.init(position);
    case 5: // Fragment # 1 - This will show SecondFragment
        return Fragment6.init(position);
    default:// Fragment # default - Will show FirstFragment
        return null;
    }
}


public int getItemPosition(Object object) {
    return POSITION_NONE;
}



@Override
public Parcelable saveState() {
    // TODO Auto-generated method stub
    return super.saveState();

}

@Override
public void notifyDataSetChanged() {
    // TODO Auto-generated method stub
    super.notifyDataSetChanged();
    Log.d("DataSetChanged", "notifyDataSetChanged=");
}

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