Java ViewPager使用FragmentPagerAdapter仅显示6个子片段中的2个
我的应用程序使用2个相同的viewpager,其中6个片段中的每一个都包含6个图像 leftViewPager的OnPageChangeListener滑动用于控制rightViewPager 当我浏览6个leftViewpager片段时,rightViewpager只是在前2个片段之间来回旋转 我知道这是因为Android在viewPager中加载了当前和下一个片段,但是当我手动滑动rightViewpager以检查所有6个片段时 所以问题是:如何通过滑动Vp1获得Vp2中的所有6个片段??正如层次结构查看器仅显示2个片段一样。或者我需要一些特殊的技巧来重复使用/回收这两个碎片 MyAdapter使用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个片段?
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;
}