首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何替换ListViewPagerAdapter.java中的片段

如何替换ListViewPagerAdapter.java中的片段
EN

Stack Overflow用户
提问于 2014-03-06 21:38:36
回答 1查看 42关注 0票数 0

我在片段中使用ViewPager。它有3个选项卡

下面是我的fragmentOagerAdapter的代码:

代码语言:javascript
复制
    @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)执行此操作。

因此,我执行以下操作:

代码语言:javascript
复制
    @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(),但没有帮助...

有什么想法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-03-06 22:27:19

实际上,我在一段时间前遇到了这个问题。最后,我不得不从视图分页程序中取出片断,然后使用FragmentManager动态地换出片断。

然后,当我想要切换到另一个“页面”时,我编写了一些自定义动画来“滑入”托管ViewPager的片段

这不是一个很好的解决方案,但它起作用了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22226228

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档