본문 바로가기
개발 log (개발)/mobile

'커스텀달력' 구현을 위한 이론(Fragment)

by abbear25 2016. 9. 6.


1.FragmentManager객체를 생성

프래그먼트 관리 

stack과 log관리, Activity와 연결된 fragment 찾기 등의 기능 제공

*findFragmentById(); //액티비티 레이아웃 내에서 UI를 제공하는 경우

*findFragmentByTag(); //UI를 제공하거나 하지 않는 경우


 FragmentManager fragManager = getSupportFragmentManager();


2.FragmentTransaction 객체를 생성

프래그먼트 트랜잭션 수행

*트랜잭션은 액티비티에 커밋한 변경 내용의 집합

 xml_layout에 Fragment객체를 추가

 사용자가 backKey를 눌렀을 때 fragment stack에 저장된 fragment를 호출

 즉, xml_layout 내 뷰그룹 요소와 frgment객체를 연결시키는 역할 수행


 FragmentTransaction ft = fragManager.beginTransaction();

*FragmentManager로부터 인스턴스를 흭득


3.Fragment Class의 instance를 생성

 MyCreateFragment frag = new MyCreateFragment();


4.Fragment객체가 생성한 뷰(아이템 뷰)를 뷰그룹(상위 뷰)에 추가

 ft.add(R.id.fragment_container, frag);


5.commit()메소드 작업을 위임

fragment transaction객체 내의 작업이 완료 되었으니

안드로이드(surfaceManager)에게 제작한 뷰를 출력시켜달라고 요청하는 작업

반드시 마지막으로 호출해야 하며 Activity가 상태를 저장하기 전에 이루어져야 함

*Activity의 onSaveInstanceState 호출된 후 commit하면 예외 발생하며

 이를 해결하려면 commitAllowingStateLoss()를 이용


 ft.commit();

반응형