1

ViewPagerと一緒に使用して、FragmentPagerAdapter4つの異なるフラグメントをホストしています。

私が達成しようとしているのは、ボタンをクリックするだけで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カムバックしました。

4

1 に答える 1

0

フラグメントは から提供されFragmentPagerAdapterます。

Fragment1 用に作成するフラグメントを調整してから、アダプターFragmentPagerAdapterを呼び出す必要があります。notifyDataSetChanged()

あなたのアプローチでは、 Fragment1 が再度表示される必要があるときに、特定のインスタンスを再作成ViewPagerするように求められるだけFragmentPagerAdapterです。これにより、置き換えようとしていたインスタンスが返されます。

アダプターで呼び出されないViewPager限り、フラグメントを内部的にキャッシュすることはできません。notifyDataSetChanged()したがって、そのコールなしで作成したチャンスを拾わない場合があります。

于 2013-02-13T10:48:22.243 に答える