일단 간단하게 적용하는 코드만
몇가지 과정이 있지만 생략 가능한 것들도 있다.
// Frag pif = new Frag();
// pif.setArguments(new Bundle());
// FragmentManager fm = Activity.getFragmentManager();
// FragmentTransaction ft = fm.beginTransaction();
// ft.add(R.id.frag_main, pif);
// ft.commit();
기본 맥락은 FragmentManager 객체에 getFragmentManager() 데이터를 넣는다. Activity는 보통 메인 액티비티가 될 것이다.
그리고 FragmentTransaction 객체를 생성하고 만들어두었던 fm 객체의 beginTransaction()을 호출한다.
그리고 add 혹은 replace로 대체한 뒤(인자는 fragment를 뿌릴 레이아웃, fragment객체, 태그(생략 가능))
commit()을 호출하면 된다.
다른 예
FragmentManager fm = Activity.getFragmentManager();
if(null == mFrag) {
mFrag = new Fragment();
}
FragmentTransaction tx = fm.beginTransaction();
tx.replace(android.R.id.content, mFrag, "TAG");
tx.addToBackStack(null);
tx.commit();
위의 경우 replace로 대체하고 addToBackStack()을 호출함으로써 스택에 현재 액티비티를 넣는 방식을 사용했다.
그리고 중간의 if문을 통해, fragment가 한 번 생성된 것을 재활용한다.
댓글