FragmentPagerAdapterをFragment内で使っているのですが、以下のFragmentを表示する時、1回目は表示されるのですが、2回目からFragmentPagerAdapterが?正常に呼び出されず、FragmentAもFragmentBも表示されません。
FragmentPagerAdapter内はFragmentmanagerにて管理されているため、Fragmentmanagerを更新させる必要があるなどと書かれていたので、それが原因かと素人的に思ったりするのですが、何が原因なのでしょうか?
また、解決方法も具体的にご教示頂けますと幸いでございます。どうぞよろしくお願いいたします。
lang
1public class Top extends Fragment { 2 3 public static Top newInstance() { 4 return new Top(); 5 } 6 7 @Override 8 public void onCreate(Bundle savedInstanceState) { 9 super.onCreate(savedInstanceState); 10 11 12 } 13 14 @Override 15 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 16 View view = inflater.inflate(R.layout.top, container, false); 17 18 // ViewPagerにMyPagerAdapterを設定 19 ViewPager pager = (ViewPager) view.findViewById(R.id.pager); 20 pager.setAdapter(new MyPagerAdapter(getFragmentManager())); 21 22 // PagerSlidingTabStripにViewPagerを設定 23 PagerSlidingTabStrip tabs = (PagerSlidingTabStrip) view.findViewById(R.id.tabs); 24 tabs.setViewPager(pager); 25 26 getActivity().setTitle("テスト"); 27 28 return view; 29 } 30 31 @Override 32 public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 33 super.onCreateOptionsMenu(menu, inflater); 34 inflater.inflate(R.menu.menu, menu); 35 } 36 37 private class MyPagerAdapter extends FragmentPagerAdapter { 38 39 private final String[] TITLES = {"A", "B"}; 40 41 public MyPagerAdapter(FragmentManager fm) { 42 super(fm); 43 } 44 45 @Override 46 public Fragment getItem(int position) { 47 switch (position) { 48 case 0: 49 return new FragmentA(); 50 case 1: 51 return new FragmentB(); 52 } 53 54 return null; 55 } 56 57 58 @Override 59 public int getCount() { 60 return TITLES.length; 61 } 62 63 @Override 64 public CharSequence getPageTitle(int position) { 65 return TITLES[position]; 66 } 67 } 68}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/03/27 06:26