Android ViewPager のライフサイクルがめちゃくちゃになっていて、アプリの構造に何か問題があるのではないかと考え始めています。そのため、次のことができるかどうか確認をお願いします。
- いくつかのタブを表示するアプリケーションがあります。これらのタブの 1 つは、2 つの ListFragments がある ViewPager を表示しています。これらの ListFragments は、ViewPager の onCreate イベントで作成されます。
- ListFragments の 1 つのアイテムをクリックすると、ViewPagerFragment 全体が別のフラグメント (別の ListFrament) に置き換えられます。
ViewPager を新しい ListFragment に置き換えるために使用するコードは次のとおりです。
FragmentManager fm = getFragmentManager();
android.support.v4.app.FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, new RequestForm(requestsList.get(itemIndex)));
ft.addToBackStack(null);
ft.commit();
そこから、すべてがうまく機能しています。しかし、ユーザーが戻るボタンをクリックすると、次のような状況になります。
- ViewPager は (onCreateView から) 正常にリロードされますが、内部の ListFragment は表示されません。私のListFragmentのオブジェクトはまだ生きているように見えますが、ビューを失ったようです.onCreateViewはそれを再作成するために呼び出されていません.
私の意図は、私がやろうとしていることが Android の考え方で問題ないかどうかを知ることであるため、今のところこれ以上コードを投稿することはありません。やりたいことをアーカイブするために、Android SDK と戦わなければなりませんか?