我在片段中使用ViewPager。它有3个选项卡
下面是我的fragmentOagerAdapter的代码:
@Override
public Fragment getItem(final int position) {
Fragment fragment = null;
switch (position) {
case 0:
fragment = Fragment.instantiate(this.context, ClassA.class.getName());
break;
case 1:
fragment = Fragment.instantiate(this.context, ClassB.class.getName());
break;
case 2:
fragment = Fragment.instantiate(this.context, ClassC.class.getName());
break;
}
return fragment;
}
@Override
public CharSequence getPageTitle(final int position) {
String res = "";
switch (position) {
case 0:
res = "nameA";
break;
case 1:
res = "nameB";
break;
case 2:
res = "nameC";
break;
}
return res;
}
@Override
public int getCount() {
return 3;
}我在我的主片段中添加了一个按钮,它允许我在列表显示和网格显示之间切换。因此,我想要的是一个动态片段,这取决于存储在首选项中的一些枚举。我想对第一个选项卡(位置0)执行此操作。
因此,我执行以下操作:
@Override
public Fragment getItem(final int position) {
Fragment fragment = null;
switch (position) {
case 0:
switch (Settings.getInstance().getProductDisplayMode()) {
case LARGE_GRID:
fragment = Fragment.instantiate(this.context, ClassALargeGrid.class.getName());
break;
case SMALL_GRID:
fragment = Fragment.instantiate(this.context, ClassASmallGrid.class.getName());
break;
case LIST:
default:
fragment = Fragment.instantiate(this.context, ClassA.class.getName());
break;
}
break;
case 1:
fragment = Fragment.instantiate(this.context, ClassB.class.getName());
break;
case 2:
fragment = Fragment.instantiate(this.context, ClassC.class.getName());
break;
}
return fragment;
}
...因此,当第一次打开活动时,它工作得很好,但我不知道如何动态切换第一个选项卡中显示的片段。
我试着在FragmentPagerAdapter上调用destroyItem(),但没有帮助...
有什么想法吗?
发布于 2014-03-06 22:27:19
实际上,我在一段时间前遇到了这个问题。最后,我不得不从视图分页程序中取出片断,然后使用FragmentManager动态地换出片断。
然后,当我想要切换到另一个“页面”时,我编写了一些自定义动画来“滑入”托管ViewPager的片段
这不是一个很好的解决方案,但它起作用了。
https://stackoverflow.com/questions/22226228
复制相似问题