본문으로 바로가기

[Android]Android fragment

category Program/Android 2015. 9. 14. 16:40

안드로이드에서 프래그먼트라는 것의 개념은 초보자가 이해하기 상당히 힘듭니다

왜냐면 Activity와 View의 개념조차 명확하지 않기 때문에

그 둘에 개념의 집합체인 fragment가 쉽게 이해될 리가 없는 것입니다

 

그래도 최대한 쉽게 설명하자면 View의 초사이언버전이 프래그먼트 라고 할까요

슈퍼 뷰 라고도 할 수 있겠습니다

분명 액티비티와 뷰의 특징을 다 가지고 있지만

그들의 계층적 관계는 변함이 없으니까요. 그 편이 이해하기 쉬울 것입니다

 

Activity는 일종의 판이나 무대, 기반 같은 것입니다

뷰들이 놀 수 있는.. 장소를 제공해줍니다

프레그먼트 역시 마찬가지로 액티비티가 제공한 무대 위에서만 활동 가능합니다

 

하지만 앞서 말한 듯이 액티비티의 특성도 있다고 했습니다

즉, 프래그먼트 역시 뷰들에게 무대를 제공할 수 있다는 것입니다


프래그먼트(fragment) 개념▲ 안드로이드 레이어

 

그냥 액티비티와 뷰 이러면 될걸 왜 이런 번거로운 게 나왔을까요

그것은 액티비티의 한계 때문에 그렇습니다

 

고깃집을 갔는데 불 판(Activity)를 얹고 양념갈비(View1)와 마늘(View2), 버섯(View3) 등등

굽습니다. 굽다가 샤브샤브가 먹고 싶어졌습니다

이땐 불 판(Activity)을 통째로 치우고 냄비(Activity2)를 얹고 다시 샤브고기(View) 등등을 넣죠

그러다 갈비가 그리워지면 다시 냄비(Activity2) 치우고 불 판(Activity) 얹고..

국수가 먹고 싶으면 불 판 치우고 국수냄비(Activity3) 를 얹고

그런 미친 짓을 자유자재로 할 수 있는 것은 다 Activity 덕분이죠

 

액티비티만 얹었다 치웠다 하면 위에 세트로 얹어진 view들도 같이 얹고 치워지니

편리했습니다

 

그런데..

 

양념갈비와 샤브를 동시에 먹고 싶은 하이브리드 욕망이 샘솟게 됩니다

과거의 고깃집(안드로이드)는 구멍가게 급이었지만

요새는 대형화로는 물론이고 태블릿화로 따위가 나와서 불 판 올리고 공간이

남는 경우가 많습니다

 

그 공간에도 View를 올리면 되긴 하지만 판(Activity)을 올려서 한번 치우고 하는 것에

비하면 엄청나게 번거롭습니다

그래서 나온 소형 판이 바로 프래그먼트 인 것입니다

프레그먼트 구조▲ 옆판을 교체!

대형 판(Activity) 위에 소형 판 A정식(fragment_A), B정식(fragment_B), C정식(fragment_C)

얹고 맘대로 먹을 수 있습니다. 물론 각 정식들엔 각종 다채로운 반찬(View)이 다르게 세팅되어있죠

그러다가 A,C는 그대로 먹고 C정식을 돈까스정식으로 바꾸려고 합니다

그럼 소형 판 fragment_C fragment_돈까스 로 바꿔주면 됩니다 나머진 그대로고요

이렇게 먹다가 대형 판을 갈아엎고

대형 판2(Activity2)에 소형 판으로 중화요리AB가 얹어져 있는 것을 가져올 수 도 있습니다

프래그먼트 구조▲ 아예 새로운 액티비티로 교체

그야말로 먹기 위한 수고가 엄청나게 줄어들어 순식간에 돼지로 만들어주는 놀라운 것이

바로 프래그먼트입니다

 

그런데 태블릿 때문에 나왔지만.. 

이건 써보니.. 앞서 말한 대형 판이나 타블렛식판 뿐만 아니라

기존의 것에 써도 엄청 편한 겁니다

그래서 아예 대세가 fragment로 바꿔버렸습니다.

기존의 Activity-View만 써도 상관은 없지만

Activity-fragment-View 가 그렇게 크게 어려운 구조도 아니고 개념만 한번 이해하면

그 기능의 월등함에 안 쓰고는 못 배기게 될 겁니다


출처 : http://belll.tistory.com/72