スキップしてメイン コンテンツに移動

投稿

8月, 2015の投稿を表示しています

FragmentStatePagerAdapterにセットしたFragmentの参照

ViewPagerにセットするアダプターをFragmentStatePagerAdapterを継承したクラスで実装する場合、そのクラスにセットしたFragmentを参照するには、StackOverflowで以下のように内部にリストなりマップなりで持つみたいなコードを見かけました。 ※このコードは動作を確認してません。だいたいこんなイメージということで 外部からこのAdapter経由でSubFragmentを参照したい場合、getItemを呼ぶなり別にメソッドを設けてfragmentsを参照するなりという方法が紹介されてました。リンクは忘れました。 でも、これだと、端末回転時やActivityが後ろに回って破棄されるような場合に、fragmentsが空っぽになってしまい参照できません。(維持する方法もあるんでしょうけど....)なんで空っぽかと言うと、端末が回転した時はgetItem()メソッドが呼ばれません。 と、少し悩んでいたのですが、別にそんなことをしなくてもFragmentStatePagerAdapterの以下のメソッドを呼べば参照することができます。 public Object instantiateItem(ViewGroup container, int position) containerにはViewPagerを入れておけばいいと思います。 まあ、よくドキュメントを読めということですね.... 関連: ViewPager + FragmentStatePagerAdapter画面回転時等のメモ