android | April 01, 2022
FragmentManager는 유저와의 인터랙션에 대한 응답으로 fragments를 추가, 제거, 교체, 또는 다른 동작들을 수행할 수 있다.transaction이라고 하며, FragmentTransaction class에서 제공하는 API를 사용하여 transaction 내에서 수행할 작업을 지정할 수 있다.각각의 transaction을 back stack에 저장할 수도 있고, activity를 통해 뒤로가기 하는 것과 유사하게 사용자는 fragment 변경 사항을 뒤로가기 할 수 있다.
기본적으로 FragmentTransaction의 changes를 back stack에 추가되지 않는데, 저장하려면 addToBackStack()를 호출하면 된다.
FragmentManager에서 beginTransaction()을 호출함으로써 FragmentTransaction의 instance를 만들 수 있다.FragmentTransaction에 대한 최종 호출은 transaction을 commit 해야 한다.
commit() 호출은 모든 작업이 transaction에 추가되었음을 FragmentManager에 알린다.
FragmentManager fragmentManager = ...
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.commit();FragmentManager에 fragment를 추가하려면 add()를 호출해야 한다.RESUMED 상태가 된다.FragmentContainerView인 것이 좋다.remove()를 호출해야 한다.findFragmentById() 또는 findFragmentByTag()를 통해 fragment manager에서 검색된 fragment instance를 parameter로 넘긴다.DESTROYED 상태가 된다.replace()를 호출한다.replace()를 호출하는 것은, remove()를 호출하고 동일한 container에 새로운 fragment를 추가하는 것과 같다.
FragmentManager fragmentManager = ...
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.replace(R.id.fragment_container, ExampleFragment.class, null);
transaction.commit();