마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

절실히 궁금합니다.제발.. 프래그먼트 관련..

0 추천
프래그먼트를 사용하다 궁금한게 생겼습니다.

프래그먼트에서 add와 replace가 있습니다.

A,B,C라는 프래그먼트를 차례대로 호출을 하는 작업을 한다고 가정을 할께요.

그리고 C에서 백버튼을 눌러서 B로 보여지고 다시 백버튼을 눌러 최종적으로 A로 와야합니다.

이럴경우에 add를 사용거나 replace를 사용하거나 둘다 어차피 백스택을 추가해야 뒤로 올수가 있는데요.

add와 replace의 상황에따른 정확한 사용용도와 결정적 차이점이 궁금합니다.

제가 아는 add와 replace의 차이점은

add는 표시할 컨테이너뷰에 프래그먼트를 위로위로 중첩해서 쌓아올리는 방식이고,

replace는 프래그먼트 자체를 쌓아올리지않고 교체해버리는 방식으로 알고 있습니다.

그런데 여기서 add는 프래그먼트를 쌓는 방식인데 addToBackStack으로 백스택을 추가해주지 않으면

뒤로가기로 이전 프래그먼트를 불러올수가 없는데요.

어차피 add나 replace나 뒤로 오려면 addToBackStack(null);을 호출해서 백스택에 추가해줘야하는데..

add와 replace를 각각 어떤 상황에서 써야 하는지 잘 모르겠네요;

전제는 뒤로가기(백키)로 이전 프래그먼트들을 보여줘야 한다는 전제입니다.

꼭 조언부탁드립니다.
갸아악 (21,260 포인트) 님이 2016년 6월 14일 질문

1개의 답변

0 추천
add와 replace의 가장 차이점은 onDetach()의 호출여부 차이가 아닐까 생각됩니다.

그리고 대부분 add보다는 replace를 많이 쓰죠

add는 액티비티가 죽을때 onDeatach를 호출하지 않을때가 있구요..

그리고 가끔씩 add해도 겹치는 현상이 일어나기도 한다고 하더라구요(전 replace만 써서 잘..)

 

전 add를 안써서 그런지 모르겠지만 뒤로가야하는 경우면 버튼을

만들어서 되돌아가는 식으로 만들거나

back키가 필수적으로 쓰여야 한다면 onBackPressd()를 오버라이드해서

제어해주면 될 것 같습니다
익명사용자 님이 2016년 6월 14일 답변
...