在viewpager中用其他片段替换一个片段

时间:2013-02-13 10:43:00

标签: android

我正在使用ViewPagerFragmentPagerAdapter来托管四个不同的片段。

我想要实现的是通过点击按钮成功替换Fragment1一个全新的片段newFragment

当我使用..

FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.fragment1_layout_id, newfragment);
transaction.remove(fragment1);
transaction.commit();

替换片段并显示Fragment而不是Fragment1。虽然只要我一直滑到Fragment4然后再回到newFragmentFragment1就会卷土重来。

1 个答案:

答案 0 :(得分:0)

您的片段由FragmentPagerAdapter提供。

您需要调整FragmentPagerAdapter为Fragment1创建的片段,然后在适配器上调用notifyDataSetChanged()

使用您的方法,应该再次显示Fragment1的时间,ViewPager只会让您的FragmentPagerAdapter重新创建特定的实例 - 这将返回您尝试替换的实例

只要在适配器上没有调用ViewPagernotifyDataSetChanged()就不能在内部缓存片段。因此,如果没有这个电话,你可能无法获得机会。

相关问题