1

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

我想要实现的是通过单击一个按钮成功地替换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然后回到newFragment,但Fragment1已经卷土重来。

4

1 回答 1

0

您的片段由FragmentPagerAdapter.

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

使用您的方法,应该再次显示 Fragment1 的时间,它ViewPager只会要求您FragmentPagerAdapter重新创建特定的实例——这将使您返回您试图替换的实例。

ViewPager只要没有在适配器上调用,就不能在内部缓存片段notifyDataSetChanged()。因此,如果没有那个电话,它可能不会抓住你创造的机会。

于 2013-02-13T10:48:22.243 回答