内部にさまざまなフラグメントを表示したいアクティビティにフレーム レイアウトがあります。3 つのオプションを備えたスライド ドロワーがあり、それぞれがフレーム レイアウト内に読み込まれるフラグメントにつながります。現在、私はこれを達成するために以下を使用しています:
Fragment nextFragment = determineFragmentToSwitchTo(nextFragmentTag);
transaction.replace(R.id.fragment_container, nextFragment);
最初のメソッドは、次のように nextFragmentTag 文字列を評価し、新しいフラグメントをロードすることによって、必要なフラグメントを決定します。
if (fragmentTag.equals(Constants.STUDENTPAGE))
nextFragment = new StudentFragment();
else if (fragmentTag.equals(Constants.TEACHERPAGE))
nextFragment = new TeacherFragment();
else if (fragmentTag.equals(Constants.PARENTPAGE))
nextFragment = new ParentFragment();
明らかに、このアプローチは毎回新しいフラグメントを作成し、状態を保存せずにフラグメントのライフサイクル全体を実行しています。したがって、学生ページで学生リストをスクロールして親ページに切り替えた場合、学生ページに戻ると、リスト全体がリロードされ(サーバーから取得しています)、自分の場所が失われますそれ。マネージャーでフラグメント化された状態とキャッシュの種類を永続化するにはどうすればよいですか (それが理にかなっている場合)。