FragmentPagerAdapterのFragmentManagerでの管理
FragmentPagerAdapterをFragment内で使っているのですが、以下のFragmentを表示する時、1回目は表示されるのですが、2回目からFragmentPagerAdapterが?正常に呼び出されず、FragmentAもFragmentBも表示されません。
FragmentPagerAdapter内はFragmentmanagerにて管理されているため、Fragmentmanagerを更新させる必要があるなどと書かれていたので、それが原因かと素人的に思ったりするのですが、何が原因なのでしょうか?
また、解決方法も具体的にご教示頂けますと幸いでございます。どうぞよろしくお願いいたします。
public class Top extends Fragment {
public static Top newInstance() {
return new Top();
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.top, container, false);
// ViewPagerにMyPagerAdapterを設定
ViewPager pager = (ViewPager) view.findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter(getFragmentManager()));
// PagerSlidingTabStripにViewPagerを設定
PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) view.findViewById(R.id.tabs);
tabs.setViewPager(pager);
getActivity().setTitle("テスト");
return view;
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.menu, menu);
}
private class MyPagerAdapter extends FragmentPagerAdapter {
private final String[] TITLES = {"A", "B"};
public MyPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new FragmentA();
case 1:
return new FragmentB();
}
return null;
}
@Override
public int getCount() {
return TITLES.length;
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
}
}