Android、Java、Web系、Linux、マラソン等の備忘録

2015/08/27

FragmentStatePagerAdapterにセットしたFragmentの参照

0 件のコメント
ViewPagerにセットするアダプターをFragmentStatePagerAdapterを継承したクラスで実装する場合、そのクラスにセットしたFragmentを参照するには、StackOverflowで以下のように内部にリストなりマップなりで持つみたいなコードを見かけました。

※このコードは動作を確認してません。だいたいこんなイメージということで
外部からこのAdapter経由でSubFragmentを参照したい場合、getItemを呼ぶなり別にメソッドを設けてfragmentsを参照するなりという方法が紹介されてました。リンクは忘れました。
でも、これだと、端末回転時やActivityが後ろに回って破棄されるような場合に、fragmentsが空っぽになってしまい参照できません。(維持する方法もあるんでしょうけど....)なんで空っぽかと言うと、端末が回転した時はgetItem()メソッドが呼ばれません。

と、少し悩んでいたのですが、別にそんなことをしなくてもFragmentStatePagerAdapterの以下のメソッドを呼べば参照することができます。

public Object instantiateItem(ViewGroup container, int position)

containerにはViewPagerを入れておけばいいと思います。
まあ、よくドキュメントを読めということですね....


関連:ViewPager + FragmentStatePagerAdapter画面回転時等のメモ

0 件のコメント :

コメントを投稿