2014年4月16日水曜日

FragmentPagerAdapterで登録しているFragmentの完全取得

ViewPagerのアダプターにFragmentPagerAdapterを使っている場合、
mAdapter.getItem(int position)で返ってくるFragmentはその実体ではない。
具体的に言うと、メンバ変数として登録したレイアウトなどへのアクセスが全てnullになる。
staticなものとかfinalは試してません。

じゃあ、どうやってアクセスするの?
ということで、surpportv13にある実装を見てみる。
コンストラクタのFragmentManagerを使って内部でタグをつけてaddしていた。

そんなわけで真似して呼んでみたらnullじゃなかった。
FragmentがもつViewの入れ替えもできた。

なんだろう。こう、もにょる。
それなら自分でsupportv4のPagerAdapterを拡張しておれおれFragmentPagerAdapter作ったほうがいいような気がしてきた。

全部のFragmentを必ず最初にattachしてonCreateは呼ばせたいが、そうなると今度はViewPagerの根本的な拡張になるんだろうなー。

具体的にはこんな感じで試してみました。

0 件のコメント:

コメントを投稿