使用ViewPager并动态替换片段

时间:2013-12-27 06:53:00

标签: android android-fragments android-viewpager

我正在尝试创建一个4标签应用程序,其中每个标签都是一个片段。 一个选项卡是搜索片段,第二个选项卡是结果。 我所做的是,一旦单击搜索片段“发送”按钮,搜索参数将被发送到我的结果片段,该片段将替换viewpager中的搜索片段并显示在屏幕上,直到查看结果片段时我回击。 在我的ViewPager适配器中,我保存一个包含所有 5 片段对象的数组,但我的getCount()返回 4 。所以我总是将结果片段作为java对象。 我可以通过调用viewPager的getItem(4)来访问该对象,因为getCount()返回4,所以它不会被框架调用。我觉得有点hacky但我明白,对于片段间通信,我必须经历viewPager的适配器。 我可以忍受。

我有两个问题提醒: 1.如何进行切换?我可以有一些函数告诉viewPager保存应该在该位置看到哪个片段,但我该如何实际进行切换? 2.我假设让后退按钮返回到搜索片段是完全相同的过程。但是为了让后退按钮只对我的结果片段做出反应,我可以在结果片段中实现onBackPressed()吗?

我的viewPager可能是唯一与show相关的东西,它也是一个非常标准的东西:

class PagerAdapter extends FragmentPagerAdapter {

    List<Fragment> _fragments;


    public PagerAdapter(FragmentManager fm) {
        super(fm);
        _fragments = new ArrayList<Fragment>();
        _fragments.add(new FragmentA());
        _fragments.add(new FragmentB());
        _fragments.add(new FragmentC());
        _fragments.add(new SearchFragment());
        _fragments.add(new ResultsFragment());
    }


    @Override
    public Fragment getItem(int n) {
        if (n < _fragments.size())
            return _fragments.get(n);
        return null;
    }

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

0 个答案:

没有答案