Fragment間のジャンプ、リターン
3853 ワード
FragmentはActivityのセグメントであり、ライフサイクルのあるViewと理解できる.そのライフサイクルも、それが受け取るActivityと密接に関連しています.ActivityにFragmentを追加するには、次のようにFragmentTransactionのaddメソッドまたはreplaceメソッドを呼び出す必要があります.
R.id.contentは、ActivityレイアウトにおけるFragmentの位置のidである.
すでに追加されているFirstFragmentでは、別のFragmentにジャンプするためにreplaceメソッドを使用することもできます.
上のコードはSecondFragmentにジャンプしたことを示していますが、SecondFragmentではどのようにFirstFragmentに戻りますか?次のコードを呼び出すだけです.
これで前のFragmentに戻りました.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getSupportFragmentManager().beginTransaction().replace(R.id.content,new FirstFragment()).commit();
}
R.id.contentは、ActivityレイアウトにおけるFragmentの位置のidである.
xml version="1.0" encoding="utf-8"?>
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/content"
>
すでに追加されているFirstFragmentでは、別のFragmentにジャンプするためにreplaceメソッドを使用することもできます.
FragmentTransaction fragmentTransaction = getActivity().getSupportFragmentManager().beginTransaction();
fragmentTransaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN).replace(R.id.content,new SecondFragment());
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
上のコードはSecondFragmentにジャンプしたことを示していますが、SecondFragmentではどのようにFirstFragmentに戻りますか?次のコードを呼び出すだけです.
getActivity().getSupportFragmentManager().popBackStack();
これで前のFragmentに戻りました.