Android

[안드로이드] 안드로이드스튜디오(Android Studio), 프래그먼트(Fragment) 란?,Fragment.SavedState, FragmentManager, FragmentTransaction, 안드로이드 강좌

정보처리마법사 2016. 8. 16. 17:12
반응형

[안드로이드] 안드로이드스튜디오(Android Studio), 프래그먼트(Fragment) 란?,Fragment.SavedState, FragmentManager, FragmentTransaction, 안드로이드 강좌

 

 

참고 : 이미지서명은 제 와이프

파푸맘 블로그(http://blog.naver.com/bobe6294)

이미지서명입니다.  

 

 

 

안녕하세요 정보처리마법사 입니다.

 

이번 포스팅의 주제는 프래그먼트(Fragment)에 관한 이론적 내용입니다.

 

프래그먼트는 액티비티 내에 배치되어 애플리케이션의 사용자 인터페이스를 구성하는 안드로이드 구성 요소입니다. 액티비티가 버튼이나 텍스트뷰와 같은 위젯이 아닌 것처럼 프래그먼트도 위젯이 아닌 안드로이드의 주요 구성요소입니다.

안드로이드 3.0 이전에는 태블릿같이 큰 화면이 아닌 작은 화면이었기 때문에 화면 구성이 그리 복잡하지 않았지만 안드로이드가 태블릿을 지원하려고 보니 큰 화면을 효율적으로 다룰 수 있는 방법이 없었고, 이를 위해 새로 도입한 개념이 프래그먼트 입니다. 프래그먼트의 영어 뜻인 "조각" 이라는 의미에서 알 수 있듯이 프래그먼트는 하나의 구성 요소일 뿐 액티비티처럼 화면을 다루는 개념은 아닙니다. 하지만 액티비티와 밀접한 관계를 가지면서 프래그먼트만의 생명주기를 가질 수 있는 요소이기 때문에 태블릿 환경에서 매우 유용하게 사용할 수 있습니다.

기존에는 액티비티가 가지는 하나의 생명주기에 우리가 원하는 기능을 처리하기 위해 다양한 방법을 사용해야 했지만 이제는 액티비티의 생명주기 내에서 프래그먼트만의 생명주기를 통해 애플리케이션을 좀 더 자유롭고 쉽게 개발할 수 있게 되었습니다. 작은 액티비티라고 생각하면 좀 더 쉽게 이해할 수 있을 것입니다.

 

프래그먼트(Fragment)의 특징

1. 프래그먼트는 액티비티와 분리해서 사용할 수 없습니다.

2. 프래그먼트는 액티비티의 생명주기 내에서 자신만의 생명주기를 가집니다.

3. 액티비티가 중지되었다면 액티비티 내의 프래그먼트는 다시 시작할 수 없습니다.

4. 액티비티가 파기되었다면 액티비티 내의 프래그먼트들은 모두 파기됩니다.

5. 프래그먼트는 필요할 때 생성할 수 있으며, 상태를 저장하고 복원할 수 있습니다.

6. Fragment 클래스의 모든 하위 클래스는 인자가 없는 public 생성자를 가지고 있어야 합니다.(존재하지 않는다면 프래그먼트 상태 복원 시 런타임 예외가 발생할 수 있습니다.)

7. 프래그먼트는 자신의 상태와 백스택(BackStack)을 가집니다.

8. 프래그먼트는 UI 없이도 존재할 수 있습니다.

 

*인자가 없는 public 생성자는 개발자가 임의로 생성자를 추가하지 않을 경우

자동으로 선언되는 디폴트 생성자입니다.

*백스택(BackStack)은 백(Back) 버튼을 클릭했을 때 보여줄

이전 프래그먼트를 저장하는 공간을 의미합니다.

 

프래그먼트는 Fragment 클래스에 의해 구현되며, 하위 클래스에는 다이얼로그를 위한 DialogFragment, 리스트를 위한 ListFragment, 환경설정을 위한 PreferenceFragement, 그리고 웹뷰를 위한 WebViewFragment가 있습니다. 이러한 프래그먼트 중 적당한 것을 찾아 상속해서 사용하면 됩니다.

 

android.app 페키지의 Fragment 관련 클래스

Fragment.SavedState

: FragmentManager.saveFragmentInstanceState() 메소드에 의해 저장된 프래그먼트 상태 정보

FragmentManager

: 액티비티 내에서 프래그먼트 객체와 상호작용하기 위한 인터페이스 제공

FragmentTransaction

: 프래그먼트 트랜젝션, 즉 프래그먼트 추가, 제거, 삭제 등의 작업을 수행하는 API


 

이상으로 포스팅을 마칩니다. 감사합니다.


 


 




참고서적 : 200개의 단계별 예제로 배우는 안드로이드 4.0 [제이펍]






Fin.


잘 못 된 정보가 있으면 말씀해주세요~


공감버튼 클릭은 작성자에게 큰 힘이 됩니다.  행복한 하루 되세요.


 

 

 

반응형