프래그먼트
프래그먼트
프래그먼트는 동작 또는 액티비티 내에서 사용자 인터페이스의 일부를 나타냅니다. 여러 개의 프래그 먼트를 하나의 액티비티에 조합하여 하나의 UI를 구축할수 있다. 프래그먼트는 여러개의 액티비티에서 재사용 할수 있다. 자체 라이프사이클을 가지며. 자체 입력이벤트를 받으며, 액티비티 실행중에 추가 및 제거가 가능한 액티비티의 모듈식 섹션이라고 생각하면 된다.(하위 액티비티와 같은 개념)
디자인 철학
기본적으로 안드로이드 3.0 api 레벨 11부터 적용 되었고 태블릿 같은 큰화면에서 유연하게 지원하는게 목적이였습니다. 프래그먼트는 개발자가 뷰 계층에 복잡한 변경 내용을 관리하지 않아도 이러한 유연하게 디자인을 사용할 수 있도록 해준다.(재사용성이나 액티비티 안에서 복잡한 뷰계층을 만들지 않도록 하는것)
프래그먼트 생명주기
프래그먼트를 생성하려면 프래그먼트 서브클래스를 생성해야됩니다. 그리고 최소한의 라이프사이클 메서드를 구현해야합니다.
onCreate()
onCreateView()
onPause()
프래그먼트 관리
액티비티 내의 프래그먼트를 관리 하려면 FragmentManager를 사용해야 한다.
프래그먼트 트랜잭션 수행
액티비티에서 프래그먼트를 사용하는 경우 특히 유용한 점은 사용자 상호작용에 응답하여 추가, 제거, 교체. 및 다른 작업을 수행할수 있다는점이다.
액티비티에 커밋한 변경내용의 집합을 트랜잭션이라고 하며 이것을 수행하려면 FragmentTransaction내의 API를 사용하면 됩니다. 해당 액티비티가 관리하는 백스택에 행해진 각 트랜잭션을 저장할수도 있다. 이렇게 하면 사용자가 프래그먼트 변경 내역을 거처 뒤로 탐색할수있다.
액티비티와의 통신
프래그먼트는 액티비티로부터 독립적인 객체지만 액티비티와 직접적으로 연결되어잇다.
쉽게말하면 프래그먼트가 액티비티에서 뷰를 찾는것과 같은 작업을 손쉽게 수행할수 있다.(반대도 마찬가지다.)