안녕하세요. Bucket Place에서 개발자를 담당하고 있는 Cloud Travel입니다.
오늘은 일단 Fragment에 대해서 알아보고, 시간이 된다면 이를 이용해 Tab을 구성하는 것에 대해서 올리도록 하겠습니다.
저는 2.3때(한 2년전) 안드로이드를 개발하고, 한참을 쉬다가 다시 어플 전선으로 뛰어 들었습니다. 수 많은 새로운 컴퍼넌트들은 저를 혼동시키게 했으며, 이 "Fragment"라는 개념 또한 저를 혼동시킨 것 중 하나입니다.
그럼 이 Fragment 라는 것에 대해서 알아봅시다.
* Fragment 란?
여러 페이지를 돌아다니면서 이것 저것 글을 읽어 보았지만, 저에게 바로 확 의미가 전달된 것은 아래의 한 문장이었습니다.
" Fragment = View + Activity "
일반적으로 하나의 화면에는 하나의 Activity(와 이에 해당되는 View들) 만이 올 수 있는게 예전의 방식입니다.
하지만 Fragment를 이용하면...
- 하나의 화면에 여러개의 Activity가 올수 있게 되며, 각 Activity에는 서로다른 View가 붙게 됩니다.
이렇게 해서 얻는 효과가 무엇일까요??
- 어플리케이션에서 특정 부분은 고정적으로 멈쳐 있을 것입니다. 일반적으로 각종 어플리케이션의 Header가 되겠죠?
- 하지만 Header의 밑부분은 지속적으로 변하게 될 것입니다. 즉, Activity에서 특정 부분만 다른 Activity로 변화를 하고 싶죠...
- 간략하게 이야기하자면, 여러개의 Activity를 하나의 화면에서 전환하는 형식으로 볼 수 있습니다.
- 추가적으로 Resource에 대한 낭비를 줄일 수 있지만, 이부분은 생략하도록 하겠습니다.
- 일반적으로 허니컴 이전의 TabActivity를 생각하시면 좋을 것 같내요...
아직 감이 잘 안오 실 것 같아서 하나의 예시를 보도록 하겠습니다.
안드로이드 계열 테블릿을 이용하는 분이라면 충분히 많이 보셨을 화면이라고 생각합니다. 또한, 왼쪽에서 서로 다른 메일을 선택할때, 새로고침 없이 오른쪽 Fragment에 내용이 바로 나오는 것을 경험해 보았을 것이라고 생각합니다.
제가 이 어플리케이션을 개발 한 것은 아니지만, 이 화면만을 본다면 두개의 Fragment가 존재한다고 볼 수 있습니다.
(크게는 메뉴가 있는 Header까지 3개가 될 수 있겠내요...)
왼쪽의 Fragment1과 오른쪽의 Fragment2는 서로 다르게 행동을 취하며, Fragment1의 선택은 Fragment2 부분만 변화시킵니다.
다음의 웹사이트를 가시면 이보다 더 자세한 정보를 얻을 것이라고 생각합니다. ^^ (http://androidhuman.tistory.com/469)
*