最適化とパフォーマンスに関してフラグメントトランザクションのより良いアプローチはどれですか?フラグメントトランザクションのためのより良いアプローチ
ParentFragment-
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, ChildFragment.newInstance(arrayList));
ft.commit();
ChildFragment-
public static ChildFragment newInstance(ArrayList<PlanModel> bPlanModels) {
ChildFragment fragment = new ChildFragment();
Bundle bundlearrayList = new Bundle();
bundlearrayList.putSerializable(AppConstant.ARRAYlIST, bPlanModels);
fragment.setArguments(bundlearrayList);
return fragment;
}
ParentFragment-
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.container, ChildFragment.newInstance(arrayList));
ft.commit();
ChildFragment-
private ArrayList<BrowsePlanModel> bPlanModels;
public ChildFragment(ArrayList<PlanModel> bPlanModels)
{
this.bPlanModels=bPlanModels
}
public static ChildFragment newInstance(ArrayList<PlanModel> bPlanModels)
{
ChildFragment fragment = new ChildFragment(bPlanModels);
return fragment;
}
3.
ParentFragment-
FragmentManager fm = getSupportFragmentManager();
FragmentTransaction ft = fm.beginTransaction();.
ChildFragment fragment = new ChildFragment();
Bundle bundlearrayList = new Bundle();
bundlearrayList.putSerializable(AppConstant.ARRAYlIST, bPlanModels);
fragment.setArguments(bundlearrayList);
ft.replace(R.id.container, fragment);
ft.commit();
私は3番目のものを更新しました。それをチェックして、最初のものと比べて悪い理由を詳細にお知らせください。 –
@AndroidLearner 3番目のケースではバンドルします。変更が必要ありません) – Beloo
トランザクションが完了する前の最初のケースでは、newInstanceメソッドを呼び出しています。ここでは、bundle.soを初期化しています。この場合、bundleも先頭に入りますか? –